我有采用下列參數的PL/SQL程序/參數獲取ORA-01861 - 文字不匹配的SQLPlus格式字符串只有
Procedure create_test(mode_in in number, value1_in in number,
value2_in in number, value3_in in varchar2);
我使用下面的PL/SQL塊調用和執行過程
DECLARE
lv_mode NUMBER;
lv_value1_in NUMBER;
lv_value2_in NUMBER;
lv_value3 VARCHAR2(3);
BEGIN
lv_mode := 1;
lv_value1_in := 1;
lv_value2_in := 1;
lv_value3_in := 'ES';
CREATE_TEST(
mode_in => lv_mode ,
value1_in => lv_value1_in,
value2_in => lv_value2_in,
value3_in => lv_value3_in
);
--rollback;
END;
/
如果我將上面的SQL塊粘貼到SQLDeveloper中並執行它,它將毫無問題地運行。 如果我把它放在一個文件並通過SQL執行它加上,我得到以下錯誤(如果直接在sqlplus運行它同樣的問題):
ORA-01861: literal does not match format string
通常當我得到這個錯誤,這個問題通常是相關到日期。我不確定上面有什麼問題,因爲沒有涉及日期 - 尤其是考慮到相同的SQL塊在IDE中工作但不在SQLPLus中的事實。 SQLPlus處理文字是否與IDE略有不同?
我的猜測是SQLPlus中的一些參數處理它的方式不同 - 但是哪一個?
存儲過程中的變量被稱爲'mode-in','value1_in','value2'和'value3'。通話中你名字錯了。 –
對不起,是一個錯字糾正。 – ziggy
很難說,看着'CREATE_TEST'程序的代碼。 – krokodilko