Oracle Shell脚本&;存储过程-文字格式错误
我有一个调用Oracle存储过程的shell脚本。SP有两个参数-第一个是VARCHAR2类型,第二个是DATE类型Oracle Shell脚本&;存储过程-文字格式错误,oracle,shell,stored-procedures,Oracle,Shell,Stored Procedures,我有一个调用Oracle存储过程的shell脚本。SP有两个参数-第一个是VARCHAR2类型,第二个是DATE类型 CREATE OR REPLACE PROCEDURE MY_SCHEMA.MY_SP_NAME(firstParameter IN VARCHAR2, dateParameter IN DATE) IS BEGIN DBMS_OUTPUT.PUT_LINE('Successfully called Procedure'); END; / 在我的shell脚本中,
CREATE OR REPLACE PROCEDURE MY_SCHEMA.MY_SP_NAME(firstParameter IN VARCHAR2, dateParameter IN DATE)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Successfully called Procedure');
END;
/
在我的shell脚本中,我尝试使用以下命令执行该过程:
echo "EXECUTE MY_SCHEMA.MY_SP_NAME('TEST', '20170909') " | $ORACLE_HOME/bin/sqlplus $ORAUSER/$ORAPASS
问题是,当脚本运行时,我得到以下错误:ORA-01861:literal与格式字符串不匹配。我猜传递给date参数的'20170809'值有问题,但我不确定如何解决这个问题。感谢您的帮助
(注意:ORACLE_HOME/USER/PASS环境变量都设置正确,我可以从脚本成功运行SQLPLUS,因此连接到ORACLE数据库时不会出现问题)您可以尝试使用
to_date
功能:
Execute my_schema.my_sp_name(‘test’,to_date(‘20170909’, ‘yyyymmdd’))
或者在日期参数中使用ISO日期格式。请尝试。。。(“测试”,日期“2017-09-09”)
。它用于日期,不取决于本地设置。