| 订阅 | 在线投稿
分享
 
 
 

oracle里long类型的总结(2)

2008-07-23 07:35:46 编辑來源:互联网 国际版 评论
 
 
  9、PL/SQL过程块的变量不能定义为LONG类型。

  10、LONG类型列不能被SQL函数所改变,如:substr、instr。

  因为long类型的数值不能用insert into ... select的方法插入,故我们要分两步走,先插入其它字段,最后再插入long类型字段,这可以通过过程来实现.下面是一个我做实验实现的例子.

  SQL>; create table testlong (id number,name varchar2(12),history long);

  表已创建。

  SQL>; create table testlong1 (id number,name varchar2(12),history long);

  表已创建。

  SQL>; insert into testlong values(1,'dwh','work in foshan');

  已创建 1 行。

  SQL>; insert into testlong values(2,'sfg','work in guangzhou');

  已创建 1 行。

  SQL>; select * from testlong;

  ID NAME HISTORY

  ---------- ------------- -------------------------------------------------------

  1 dwh work in foshan

  2 sfg work in guangzhou

  SQL>; insert into testlong1 select * from testlong;

  insert into testlong1 select * from testlong

  *

  ERROR 位于第 1 行:

  ORA-00997: 非法使用 LONG 数据类型

  SQL>; Declare

  2 CURSOR bcur

  3 IS SELECT id,history from testlong;

  4 brec bcur%ROWTYPE;

  5 BEGIN

  6 insert into testlong1(id,name) select id,name from testlong;--其它类型

  先插入

  7 OPEN bcur;

  8 LOOP

  9 FETCH bcur INTO brec;

  10 EXIT WHEN bcur%NOTFOUND;

  11 update testlong1 set history=brec.history where id=brec.id;

  12 END LOOP;

  13 CLOSE bcur;

  14 END;

  15 /

  PL/SQL 过程已成功完成。

  SQL>; select * from testlong1;

  ID NAME HISTORY

  ---------- -------------- ----------------------------------------------

  1 dwh work in foshan

  2 sfg work in guangzhou

  摘自http://whitechief.itpub.net/post/1825/47242
 
 
9、PL/SQL过程块的变量不能定义为LONG类型。 10、LONG类型列不能被SQL函数所改变,如:substr、instr。 因为long类型的数值不能用insert into ... select的方法插入,故我们要分两步走,先插入其它字段,最后再插入long类型字段,这可以通过过程来实现.下面是一个我做实验实现的例子. SQL>; create table testlong (id number,name varchar2(12),history long); 表已创建。 SQL>; create table testlong1 (id number,name varchar2(12),history long); 表已创建。 SQL>; insert into testlong values(1,'dwh','work in foshan'); 已创建 1 行。 SQL>; insert into testlong values(2,'sfg','work in guangzhou'); 已创建 1 行。 SQL>; select * from testlong; ID NAME HISTORY ---------- ------------- ------------------------------------------------------- 1 dwh work in foshan 2 sfg work in guangzhou SQL>; insert into testlong1 select * from testlong; insert into testlong1 select * from testlong * ERROR 位于第 1 行: ORA-00997: 非法使用 LONG 数据类型 SQL>; Declare 2 CURSOR bcur 3 IS SELECT id,history from testlong; 4 brec bcur%ROWTYPE; 5 BEGIN 6 insert into testlong1(id,name) select id,name from testlong;--其它类型 先插入 7 OPEN bcur; 8 LOOP 9 FETCH bcur INTO brec; 10 EXIT WHEN bcur%NOTFOUND; 11 update testlong1 set history=brec.history where id=brec.id; 12 END LOOP; 13 CLOSE bcur; 14 END; 15 / PL/SQL 过程已成功完成。 SQL>; select * from testlong1; ID NAME HISTORY ---------- -------------- ---------------------------------------------- 1 dwh work in foshan 2 sfg work in guangzhou 摘自[url=http://whitechief.itpub.net/post/1825/47242]http://whitechief.itpub.net/post/1825/47242[/url]
󰈣󰈤
 
 
>>返回首页<<
 为你推荐
 
 
 
 转载本文
 UBB代码 HTML代码
复制到剪贴板...
 
 
 热帖排行
 
 
王朝网络微信公众号
微信扫码关注本站公众号wangchaonetcn
 
  免责声明:本文仅代表作者个人观点,与王朝网络无关。王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
©2005- 王朝网络 版权所有