Error handling (SQR 4008)表达式中的未知函数或变量

Error handling (SQR 4008)表达式中的未知函数或变量,error-handling,special-characters,peoplesoft,sqr,Error Handling,Special Characters,Peoplesoft,Sqr,我有这样一个SQR代码: 开始程序SPL-REMOVE($Vndr\u Name\u Shrt\u Usr,:$outputshrt) 让$valid_chars_shrt='abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvxyz-。:/'@0123456789@()=+%*“£$” 让$invalid\u chars\u shrt=translate($Vndr\u Name\u shrt\u Usr,$valid\u chars\u shrt,

我有这样一个SQR代码:

开始程序SPL-REMOVE($Vndr\u Name\u Shrt\u Usr,:$outputshrt)

让$valid_chars_shrt='abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvxyz-。:/'@0123456789@()=+%*“£$”

让$invalid\u chars\u shrt=translate($Vndr\u Name\u shrt\u Usr,$valid\u chars\u shrt,”)

Let#invalid_shrt=长度($invalid_chars_shrt)

如果无效

让$outputshrt=translate($Vndr\u Name\u Shrt\u Usr,$invalid\u chars\u Shrt',)

其他

让$outputshrt=$Vndr\u Name\u Shrt\u Usr

如果结束

结束程序

在运行SQR时,我得到以下错误:

(SQR 4008)表达式中的未知函数或变量:@0123456789@ 让$valid_chars_shrt='abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz-。:/'@0123456789@()=+%*“£$”

我可以知道为什么吗?如何避免出现此类错误?

如果这确实是代码: 让$valid_chars_shrt='abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz-。:/'@0123456789@()=+%*“£$”

问题在于@012345678之前的单引号。它使带引号的字符串不平衡。将其更改为两个单引号“”(不是双引号)。这应该可以工作,但除非我对其进行测试,否则无法保证。

如果这确实是代码: 让$valid_chars_shrt='abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz-。:/'@0123456789@()=+%*“£$”


问题在于@012345678之前的单引号。它使带引号的字符串不平衡。将其更改为两个单引号“”(不是双引号)。这应该行得通,但除非我测试它,否则不能保证。

你给了我一个想法!虽然我对代码的其他部分做了一些调整,但后来我意识到在那个特定的代码中有一个令人困惑的撇号。你给了我一个想法!虽然我对代码的其他部分做了一些调整,但后来我意识到在特定代码中有一个令人困惑的撇号。