請有人幫助一個很新手的Oracle人。我在Oracle中創建了一個存儲過程來刪除日期範圍分區。我用來創建程序的代碼是:Oracle sql存儲過程數據參數丟失單引號
SQL> CREATE OR REPLACE PROCEDURE NEW_EVENT_DELETE(palterdate in VARCHAR2) AS
2 begin
3 execute immediate 'ALTER TABLE ROSUSER.EVENT DROP PARTITION FOR(TO_DATE(palterdate, ''DD-MON-YYYY'')) UPDATE INDEXES';
4 end NEW_EVENT_DELETE;
5/
編譯沒有問題,但是當我嘗試使用運行程序:
ERROR at line 1:
ORA-14755: Invalid partition specification for FOR VALUES clause.
ORA-06512: at "ROSUSER.NEW_EVENT_DELETE", line 3
ORA-06512: at line 1
:
exec NEW_EVENT_DELETE('03-FEB-2014');
它回來如果我使用命令:
ALTER TABLE ROSUSER.EVENT DROP PARTITION FOR(TO_DATE('03-FEB-2014', 'DD-MON-YYYY'));
然後它工作。在我看來,輸入日期周圍的單引號集正在丟失,因爲如果我試圖在日期周圍沒有引號的情況下運行ALTER命令,那麼它就是我得到的同樣的錯誤消息。
任何想法我做錯了什麼?
感謝您的任何幫助
嘗試NEW_EVENT_DELETE(「03-FEB-2014」);而不是單個'' – Unlockedluca 2015-02-10 15:37:50
@Unlockedluca:Oracle不會使用這樣的雙引號。單引號是正確的。 – Ditto 2015-02-10 15:40:29