[PHP-users 11670] Re: PHP からOracle のストアドプロシージャを呼びたい
原 啓次
php-users@php.gr.jp
Thu, 21 Nov 2002 18:38:56 +0900
原@クエストです。
> >具体的なエラーは以下のメッセージです。
> >Warning: OCIStmtExecute: ORA-00933: SQL command not properly ended
> (snip)
> >しかし、直接SQL*PLUSで実行したところ正しく実行できました。
>
> 実際に$lstrSqlに入っているSQLで実行してみたのでしょうか?
そうです。
echoで出力し、実行しました。
> >ソースは以下のようになっております。
> >●PHP(一部)
> > $lstrSql .= "DECLARE
> > w_IDSEIKN PLAN_USER.IDSEIKN%TYPE;
> > w_IDMEIKN PLAN_USER.IDMEIKN%TYPE;
> > w_KISKBN PLAN_USER.KISKBN%TYPE;
> > w_IDKISCD PLAN_USER.IDKISCD%TYPE;
> > w_IDYAKUCD PLAN_USER.IDYAKUCD%TYPE;
> > w_IDSZKCD PLAN_USER.IDSZKCD%TYPE;
> > w_IDMAIL PLAN_USER.IDMAIL%TYPE;
> > w_SECJYOHO PLAN_USER.SECJYOHO%TYPE;
> > ";
> > $lstrSql .= "BEGIN ";
> > $lstrSql .= "ESTGETUIDINFO(:in_userid, :in_passwd, :w_SysCD, w_IDSEIKN, w_IDMEIKN,
> > w_KISKBN, w_IDKISCD, w_IDYAKUCD, w_IDSZKCD, w_IDMAIL, w_SECJYOHO,:w_RET);";
> > $lstrSql .= "END;";
> SQLの最後が「;END;」となりますが、「; END;」と半角スペースを
> 空けてないから、という理由ではないですかね?
こちらは空けてみましたが、状況は変わりませんでした。
構文的には問題ないのでしょうか!?
# SQL*PLUSで実行でき、PHPから出来ないのは
# bind変数などが間違っているのか。。。
しかし、いろいろやってみても状況は変わりません。
どなたかヒントでもいいのでよろしくお願いします。
以上です。
------------------------------------------
(株)クエスト
システムソリューション事業部
ソフトウエア・テクノロジーセンター
原 啓次
Mail:hara@quest.co.jp
------------------------------------------