0

我正在开发一个 PL/SQL Oracle Web 应用程序,我需要创建一个处理文件上传表单的过程。文件上传表单字段名称为new_photo. 这是我的代码,但我提交时总是出错。我在网上或 oracle 文档中找不到此任务的任何示例。

错误:

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:您将必须定义一个特定的表并修改相关的 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 个参数,过程本身只有一个

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