【发布时间】:2017-11-09 20:16:10
【问题描述】:
我有一个调用 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 脚本中,我尝试使用以下命令执行该过程:
echo "EXECUTE MY_SCHEMA.MY_SP_NAME('TEST', '20170909') " | $ORACLE_HOME/bin/sqlplus $ORAUSER/$ORAPASS
问题是当脚本运行时出现以下错误:ORA-01861:文字与格式字符串不匹配。我的猜测是我传递给 date 参数的“20170809”值存在问题,但我不确定如何解决这个问题。任何帮助表示赞赏。
(PS:ORACLE_HOME/USER/PASS 环境变量都设置正确,我可以从脚本成功运行SQLPLUS,所以连接Oracle数据库没有问题)
【问题讨论】:
-
请尝试
... ('TEST', date '2017-09-09')。日期为universal syntax,与本地设置无关。
标签: oracle shell stored-procedures