标准数据库函数TO_CHAR()的用法

2020-08-31 04:34发布

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

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


尊敬的专家,

我想使用标准数据库函数TO_CHAR()以便仅以日期格式格式化TIMESTAMP(6)字段。 我要执行以下查询:

选择仓库,SSCC,材料,数量, TO_CHAR(EXPIRYDATE,'YYYY-MM-DD'),来自SAPSTOCKREPORTITEM的STOCK_STA;

经过研究,我发现了注释2072891 2072891-如何使用数据库标准功能通过接收方通信通道查询数据库,其中提到了两个属性hasQuot和元数据。 我遵循了步骤,但是没有成功。

我的系统仅是PO 7.4 Java堆栈和Oracle 11g。

有人成功使用功能TO_CHAR吗?

最诚挚的问候,

Rossitsa

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

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


尊敬的专家,

我想使用标准数据库函数TO_CHAR()以便仅以日期格式格式化TIMESTAMP(6)字段。 我要执行以下查询:

选择仓库,SSCC,材料,数量, TO_CHAR(EXPIRYDATE,'YYYY-MM-DD'),来自SAPSTOCKREPORTITEM的STOCK_STA;

经过研究,我发现了注释2072891 2072891-如何使用数据库标准功能通过接收方通信通道查询数据库,其中提到了两个属性hasQuot和元数据。 我遵循了步骤,但是没有成功。

我的系统仅是PO 7.4 Java堆栈和Oracle 11g。

有人成功使用功能TO_CHAR吗?

最诚挚的问候,

Rossitsa

付费偷看设置
发送
5条回答
clasier
1楼-- · 2020-08-31 04:55

Vadim,谢谢您的答复。

我尝试了本机SQL。 不幸的是,文档没有详细说明。

运行时出现错误:

错误处理请求,回滚:错误'java.sql.SQLSyntaxErrorException:ORA-00900:无效的SQL语句
'使用SQL语句'<?xml version =" 1.0" encoding =" UTF-8"执行服务raw2sql ?>
选择仓库,SSCC,材料,数量,TO_CHAR(EXPIRYDATE," YYYY-MM-DD") ),来自SAPSTOCKREPORTITEM的STOCK_STA; '

您是否有使用Native SQL的经验,向我展示了一个简单的工作示例?

最诚挚的问候,

Rossitsa

微wx笑
2楼-- · 2020-08-31 04:41

嗨,瓦迪姆,

很遗憾,到目前为止,我没有向SAP提出事件。

同时我尝试使用Java的NativeSQL解决方案。 JDBC驱动程序和撇号存在问题。 目前,我在TRUNC中使用变通方法-从SAPSTOCKREPORTITEM中选择SELECT WAREHOUSE,SSCC,MATERIAL,QUANTITY,TO_CHAR(TRUNC(EXPIRYDATE))和STOCK_STA。 现在,我需要重新设计响应,因为它是以这种方式返回的:

具有<?xml version =" 1.0" encoding =" utf-8"的退出方法?>
<!DOCTYPE结果集
[
<!ELEMENT结果集(row *)>
< !ELEMENT行(WAREHOUSE,SSCC,MATERIAL,QUANTITY,TO_CHAR(TRUNC(EXPIRYDATE)),STOCK_STA)*>
<!ELEMENT WAREHOUSE(#PCDATA)>
<!ELEMENT SSCC(#PCDATA)>
<!ELEMENT MATERIAL(#PCDATA)>
<!ELEMENT QUANTITY(#PCDATA)>
<!ELEMENT TO_CHAR(TRUNC(EXPIRYDATE))(#PCDATA)>
<!ELEMENT STOCK_STA(#PCDATA )>
]>
<结果>>
<行>
193
250267915750863398
1606901
60
13-SEP-16
UN


最诚挚的问候,

玫瑰色

Nan4612
3楼-- · 2020-08-31 04:59

嗨 Rossitsa,

我们使用了此功能(系统-PO 7.4 SP09),效果很好。

能否请您提供以下信息:

  • 如果 您直接在远程数据库中执行有问题的SQL查询,它是否完成了su
  • 在采购订单中遇到什么错误?

能否请您提供消息映射的屏幕截图(映射到目标字段) 代表使用TO_CHAR()函数访问的列和JDBC通信通道的配置?

如果您临时在JDBC通道中启用SQL语句的日志记录并捕获发送的确切SQL查询,这也将很有帮助 到远程数据库(请参阅SAP注释801367中描述的附加参数" logSQLStatement"的用法),以确保将SQL查询按预期方式传递到数据库且未损坏。

注意,

Vadim

PS 您最近提出的线程 似乎解决了完全相同的问题。 您是否介意只打开或关闭这些线程中的一个,以便SCN成员可以在一次讨论中始终如一地为您提供答案?

灬番茄
4楼-- · 2020-08-31 04:37

Hello Rossitsa,

配置 屏幕截图上提供的内容似乎还不错。 我建议为此向SAP提出事件。 同时,作为一种解决方法,您可能需要从XML SQL格式切换为Native SQL格式,并手动构造所需的SQL查询字符串。 尽管XML SQL通常是配置JDBC方案时的首选格式,但在这种特殊情况下,本机SQL看起来是一个合理的临时解决方法。

问候,

Vadim

追夢秋陽
5楼-- · 2020-08-31 04:55

嗨,

您需要在" TO_CHAR(EXPIRYDATE,'YYYY-MM-DD')"部分的双引号" EXPIRYDATE"中添加属性。 因此,您不需要更改响应,并且不会遇到" 13-SEP-16 "的问题。

因此您的选择应如下所示:

从SAPSTOCKREPORTITEM中选择仓库,SSCC,材料,数量,TO_CHAR(EXPIRYDATE,'YYYY-MM-DD')" EXPIRYDATE",STOCK_STA;

一周热门 更多>