我有这样的SQR代码:
开始过程SPL-REMOVE($ Vndr_Name_Shrt_Usr,:$ outputshrt)
让$ valid_chars_shrt ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-.:/'@0123456789@()=+%*"£$'
让$ invalid_chars_shrt =翻译($ Vndr_Name_Shrt_Usr,$ valid_chars_shrt,'')
让#invalid_shrt =长度($ invalid_chars_shrt)
如果#invalid_shrt
让$ outputshrt = translation($ Vndr_Name_Shrt_Usr,$ invalid_chars_shrt,'')
其他
让$ outputshrt = $ Vndr_Name_Shrt_Usr
如果是,则结束
最终过程
在运行SQR时,出现此错误:
(SQR 4008)表达式中的未知函数或变量:@ 0123456789 @
让$ valid_chars_shrt ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-.:/'@@34563456789@()=+%*"£$'
我可以知道为什么会这样吗?如何避免出现此类错误?
最佳答案
如果这确实是代码:
让$ valid_chars_shrt ='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-.:/'@@34563456789@()=+%*"£$'
问题在于@ 012345678之前的单引号。它使引用的字符串不平衡。将其更改为两个单引号''(而不是双引号)。那应该可以,但是除非我进行测试,否则不能保证。