0

私は PL/SQL Oracle Web アプリケーションに取り組んでおり、ファイル アップロード フォームを処理する手順を作成する必要があります。ファイル アップロード フォームのフィールド名はnew_photo. これは私が持っているコードですが、送信すると常にエラーが発生します。オンラインまたはオラクルのドキュメントで、このタスクの例を見つけることができません。

エラー:

Error 6550 calling procedure:

ORA-06550: line 2, column 3:
PLS-00306: wrong number or types of arguments in call to 'INSERT_NEW_PHOTO'
ORA-06550: line 2, column 3:
PL/SQL: Statement ignored

The last SQL statement executed was:

begin
  insert_new_photo(:B1,:B2,:B3,:B4,:B5,:B6,:B7,:B8);
end;

コード:

CREATE OR REPLACE PROCEDURE insert_new_photo (new_photo VARCHAR2 DEFAULT NULL) IS
    BEGIN

       -- if the user didn't chose a file to upload
       IF new_photo IS NULL OR LENGTH( new_photo ) = 0
       THEN
       print_page_header;
       print_error( 'Please supply a file name.' );
       print_upload_form;
       --print_page_trailer( TRUE );
       return;
   END IF;

END insert_new_photo;
/

フォーム :

<form action="insert_new_photo" method="post" enctype="multipart/form-data">
<input type="text" name="new_photo"><br>
<input type="submit" value="ok">
</form>
4

2 に答える 2

3

mod_plsql を使用していますか? この場合、ファイルを PL/SQL proc に直接 POST できないと思います。特定のテーブルを定義し、関連する DAD パラメータを変更する必要があります ( http://docs.oracle.com/cdを参照)。 /E14571_01/portal.1111/e12041/concept.htm#i1005866 )。

HTH。

アレッサンドロ

于 2012-05-24T09:03:12.397 に答える
1

私が間違っている場合は修正してください。ただし、プロシージャへの呼び出しに引数が多すぎることが問題のようです

insert_new_photo(:B1,:B2,:B3,:B4,:B5,:B6,:B7,:B8);

ここには8つの引数があり、プロシージャ自体には1つしかありません

insert_new_photo (new_photo VARCHAR2 DEFAULT NULL)
于 2012-05-23T21:02:25.060 に答える