带替换变量的无效数字

时间:2015-04-14 12:57:49

标签: oracle plsql

我无法尝试将输入作为数字变量接受。这是我的代码:

ACCEPT clientidnum NUMBER PROMPT 'Enter Client Number(s): '

SELECT * FROM PROD.GS_EXTERNAL_CONTACT@prd1.WORLD 
WHERE GEC_GS_EXT_CONTACT_ID IN (SELECT GEC_GS_EXT_CONTACT_ID
                      FROM PROD.CLIENT@prd1.WORLD a
                      WHERE CT_CLIENT_ID = to_number(trim(replace('&clientidnum',CHR(13)))) AND
                a.GEC_GS_EXT_CONTACT_ID NOT IN (SELECT GEC_GS_EXT_CONTACT_ID 
                                FROM PROD.GS_EXTERNAL_CONTACT b
                                WHERE a.GEC_GS_EXT_CONTACT_ID= b.GEC_GS_EXT_CONTACT_ID));

当我在SQL Plus中运行它时,它会返回以下错误:

ERROR at line 4:
ORA-01722: invalid number

感谢您的帮助!很抱歉,如果这是一个简单的问题,但我已经习惯使用SQL Server,并且被抛到Oracle上以使一些事情正常工作。

1 个答案:

答案 0 :(得分:0)

想出来。我的glogin.sql脚本中SET DEFINE设置为OFF。我将SET DEFINE ON添加到我正在运行的脚本中并且可以正常运行。