在Codeigniter 2中執行oracle存儲過程時遇到了一個小時的問題。我無法爲CI +存儲過程找到適當的文檔。使用Codeigniter 2和Oracle執行存儲過程11g
我的存儲過程:
CREATE OR REPLACE
PROCEDURE SP_DISTRICT_INSERT(P_DST_NAME VARCHAR2, FLAG VARCHAR2 Default '0',P_USER_ID Number) AS
PKEY NUMBER:=0;
BEGIN
SELECT MAX(NVL(DST_ID,0))+1 INTO PKEY FROM DISTRICT ;
INSERT INTO DISTRICT(DST_ID, DST_NAME, USER_ID, ENTERED_DATE, FLAG) VALUES(PKEY,P_DST_NAME,P_USER_ID,SYSDATE ,FLAG);
COMMIT ;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (-20001,PKEY|| 'INVALID_NO'|| P_DST_NAME|| 'DATAMISMATCH'|| SQLERRM, TRUE) ;
END SP_DISTRICT_INSERT ;
和我執行存儲過程在我的模型是這樣
$ins=$this->db->query("call SP_DISTRICT_INSERT('abcdxyz',1,1)");
頁面顯示錯誤
Error Number:
call SP_DISTRICT_INSERT('abcdxyz',1,1)
Filename: D:\xampp\htdocs\..\database\DB_driver.php
Line Number: 330
然而,
如果我直接從Navicat的調用程序,它的工作原理
任何幫助將不勝感激。
P.S.我米使用笨2和Oracle 11g
由於
請仔細閱讀[sequences](http://docs.oracle.com/cd/E11882_01/server.112/e25789/schemaob.htm#CNCPT611)以及明智地使用空格。我從來沒有使用過Codeignitor,但是,你沒有引用你的第二個變量,我懷疑那裏的'call'是錯誤的。 – Ben
也沒有工作。是的,在那裏使用'call'是正確的。 – WatsMyName