[PHP-users 11669] Re: PHP からOracleのストアドプロシージャを呼びたい
SHIMOOKA Hideyuki
php-users@php.gr.jp
Thu, 21 Nov 2002 18:28:20 +0900
下岡です。
---- 原 啓次さん曰く...
>具体的なエラーは以下のメッセージです。
>Warning: OCIStmtExecute: ORA-00933: SQL command not properly ended
(snip)
>しかし、直接SQL*PLUSで実行したところ正しく実行できました。
実際に$lstrSqlに入っているSQLで実行してみたのでしょうか?
>ソースは以下のようになっております。
>●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作成部分を実際に実行してみると、$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;
BEGIN 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);END;
----ここまで
と入ります。
SQLの最後が「;END;」となりますが、「; END;」と半角スペースを
空けてないから、という理由ではないですかね?
--
H.Shimooka / shimooka@axissoft.co.jp