Codeigniter2でOracleストアドプロシージャを実行するのに問題が発生したのは1時間でした。CI+ストアドプロシージャの適切なドキュメントを見つけることができません。
私のストアドプロシージャ:
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から直接プロシージャを呼び出すと、機能します
どんな助けでもありがたいです。
PS私はCodeigniter2とOracle11gを使用しています
ありがとう