点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨。
我写了一个SP,该SP接受字符串并执行一条update语句。 2个字符串,一个用于SET'',一个用于WHERE。
UPDATE" sch"。" hana.data::Tables.details" SET :Upd_Str WHERE" LocationNo" IN(: LOC_VAL ); em>
当我从XSJS调用此SP时
选项1。 result = spUpdate(updStrForSP,locStrForSP);
选项2。 result = spGetLocations('" Country" = \'CA \'," Brands" = \'brd1,brd2 \'," POBox" = \'500032 \'','\' 748631 \',\'746716 \'');
选项1出现语法错误,但是选项2正常运行。 但是选项1中的变量具有相同的值(调试时比较这些值)
我已经尝试了所有可能的组合来解决此问题。 但是语法错误仍然存在。
我感觉到的问题是由于特殊字符(\)。 没有它,我将无法运行SP。 这样做的原因是,我们必须更新1个或更多列,而这些列将是即时知道的。
感谢您的回复。
致谢
吉里
我创建了一个变量并创建了要传递给EXECUTE IMMEDIATE的字符串
upString:='更新"表" SET';
wholeString:=:upString || :inString;
立即执行(:wholeString);
这是我所做的唯一更改。 一切正常。
感谢您的回复
致谢
吉里
谢谢塞尔吉奥。 我们尝试了所有选项
Giri ...您看到的与语法相关的问题是bc,您转义了太多次...您应该能够使用execute立即语句-我有 试图将..请将整个Update语句放入一个变量...(不要转义单引号...然后立即执行该语句
似乎您正在使用静态update语句;并且 如果希望基于Update字符串动态更新列,则必须使用Dynamic sql进行这种更新。
立即执行将是执行动态sql的正确选择。
嘿阿尼鲁达(
感谢您的回复。
我们也尝试过。 我们也在那里收到语法错误。 因此采用了这种方法
致谢
Giri
错误消息是什么? 很难在您的应用程序知识有限的情况下给出答案。
一周热门 更多>