标量类型不允许;可以转换吗?

2020-09-27 06:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨朋友, 我正在尝试使用表函数...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨朋友,

我正在尝试使用表函数返回今天的日期。 据我了解,Date数据类型本质上是标量,但是我试图将其转换为字符,但不允许。

出了什么问题? 这种转换可能吗? 我遇到错误

"无法创建目录对象:标量类型不允许;第14行第9列(在pos 367处)"

功能" BIUSER"。" GK1.Func_Proc :: TF1"()
 返回表(DT1 VARCHAR(20))
 语言SQLSCRIPT
 SQL安全调用者
 DT1 VARCHAR(20);
 开始
/*********************************
 编写函数逻辑
  ********************************/
  声明DT日期;
 
  从DUMMY中将CURDATE()转换为DT;
  从DUMMY中选择TO_CHAR(:DT,'DD-MON-YYYY')进入DT1;
  返回值:DT1;
 结束;
 

请提出建议。

谢谢

Gaurav

2条回答
微wx笑
2020-09-27 06:51

如果您没有将"结果"声明为标量变量,它将可以工作。 没有必要声明它。 另一点是,您已将重播类型中的列名称更改为"结果"。 这与所选内容的列名不匹配。

它以以下形式工作:

功能" BIUSER"。" GK1.Func_Proc :: TF1"()
 返回表(" DT1" VARCHAR(20))
 语言SQLSCRIPT
 SQL安全调用者
 开始
  结果=从DUMMY中选择" DT1"作为TO_CHAR(CURDATE(),'DD-MON-YYYY');
  返回:结果;
 结束; 

或者短一行:

功能" BIUSER"。" GK1.Func_Proc :: TF1"()
 返回表(" DT1" VARCHAR(20))
 语言SQLSCRIPT
 SQL安全调用者
 开始
  从DUMMY返回SELECT TO_CHAR(CURDATE(),'DD-MON-YYYY')作为" DT1";
 结束; 

此致,
弗洛里安

一周热门 更多>