免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1028 | 回复: 0
打印 上一主题 下一主题

请各位帮忙修改查错的,小弟实在是没有办法了. [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-15 19:38 |只看该作者 |倒序浏览
SQL>; CREATE OR REPLACE PROCEDURE hd6_update_image(
  2       table_name   IN  VARCHAR2,
  3       rec_no_name   IN  VARCHAR2,
  4       image_name   IN  VARCHAR2,
  5       rec_no    IN  INTEGER,
  6       image_len   IN OUT BINARY_INTEGER,
  7       image    IN  RAW)
  8  IS
  9   lob_loc   BLOB;
10   sel_stmt  VARCHAR2(500);
11   sel_cursor_id         NUMBER;
12   ret   NUMBER;
13  
14  BEGIN
15  
16   sel_stmt := 'SELECT ' || image_name || ' FROM ' || table_name || ' WHERE ' || rec_no_name || ' = :rno FOR UPDATE';
17   sel_cursor_id := dbms_sql.open_cursor;
18   dbms_sql.parse(sel_cursor_id, sel_stmt, dbms_sql.native);
19   dbms_sql.define_column(sel_cursor_id, 1, lob_loc);
20   dbms_sql.bind_variable(sel_cursor_id, ':rno', rec_no);
21   ret := dbms_sql.execute_and_fetch(sel_cursor_id);
22  
23         IF ret >; 0 THEN
24  
25    dbms_sql.column_value(sel_cursor_id, 1, lob_loc);
26    dbms_lob.open(lob_loc,dbms_lob.lob_readwrite);
27    dbms_lob.writeappend(lob_loc, image_len, image);
28    dbms_lob.close(lob_loc);
29  
30   END IF;
31   dbms_sql.close_cursor(sel_cursor_id);
32   exception when others then
33    if dbms_sql.is_open(sel_cursor_id) then
34     dbms_sql.close_cursor(sel_cursor_id);
35    end if;
36  END hd6_update_image;
37  /

警告:已创建的过程出现编译错误。

SQL>; SHOW ERRORS
PROCEDURE HD6_UPDATE_IMAGE出现错误:

LINE/COL ERROR                                                                                      
-------- -----------------------------------------------------------------                          
26/3     PL/SQL: Statement ignored                                                                  
26/34    PLS-00302: 必须说明'LOB_READWRITE'组件                                                     
27/3     PL/SQL: Statement ignored                                                                  
27/12    PLS-00302: 必须说明'WRITEAPPEND'组件                                                      
28/3     PL/SQL: Statement ignored                                                                  
28/12    PLS-00302: 必须说明'CLOSE'组件                                                            
SQL>;
SQL>; CREATE OR REPLACE PROCEDURE hd6_read_image(
  2       table_name   IN  VARCHAR2,
  3       rec_no_name   IN  VARCHAR2,
  4       image_name   IN  VARCHAR2,
  5       rec_no    IN  INTEGER,
  6       image_len   IN OUT BINARY_INTEGER,
  7       offset    IN   INTEGER,
  8       image    OUT  RAW)
  9  IS
10   lob_loc   BLOB;
11   sel_stmt  VARCHAR2(500);
12   sel_cursor_id NUMBER;
13   ret    NUMBER;
14  BEGIN
15   sel_stmt := 'SELECT ' || image_name || ' FROM ' || table_name || ' WHERE ' || rec_no_name || ' = :rno';
16   sel_cursor_id := dbms_sql.open_cursor;
17   IF dbms_sql.is_open(sel_cursor_id) THEN
18    dbms_sql.parse(sel_cursor_id, sel_stmt, dbms_sql.native);
19    dbms_sql.define_column(sel_cursor_id, 1, lob_loc);
20    dbms_sql.bind_variable(sel_cursor_id, ':rno', rec_no);
21    ret := dbms_sql.execute_and_fetch(sel_cursor_id);
22    IF ret >; 0 THEN
23     dbms_sql.column_value(sel_cursor_id, 1, lob_loc);
24     dbms_lob.open(lob_loc, dbms_lob.lob_readonly);
25     dbms_lob.read(lob_loc, image_len, offset, image);
26     dbms_lob.close(lob_loc);
27    END IF;
28    dbms_sql.close_cursor(sel_cursor_id);
29   ELSE
30    image_len := 0;
31   END IF;
32   exception when others then
33    if dbms_sql.is_open(sel_cursor_id) then
34     dbms_sql.close_cursor(sel_cursor_id);
35    end if;
36  END hd6_read_image;
37  /

警告:已创建的过程出现编译错误。

SQL>; SHOW ERRORS
PROCEDURE HD6_READ_IMAGE出现错误:

LINE/COL ERROR                                                                                      
-------- -----------------------------------------------------------------                          
24/4     PL/SQL: Statement ignored                                                                  
24/36    PLS-00302: 必须说明'LOB_READONLY'组件                                                      
26/4     PL/SQL: Statement ignored                                                                  
26/13    PLS-00302: 必须说明'CLOSE'组件                                                            
SQL>;
SQL>; spool off
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP