国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

oracle里long類型的總結(jié)

2024-08-29 13:52:57
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1、LONG 數(shù)據(jù)類型中存儲(chǔ)的是可變長(zhǎng)字符串,最大長(zhǎng)度限制是2GB。

2、對(duì)于超出一定長(zhǎng)度的文本,基本只能用LONG類型來(lái)存儲(chǔ),數(shù)據(jù)字典中很多對(duì)象的定義就是用LONG來(lái)存儲(chǔ)的。
1、LONG 數(shù)據(jù)類型中存儲(chǔ)的是可變長(zhǎng)字符串,最大長(zhǎng)度限制是2GB。

2、對(duì)于超出一定長(zhǎng)度的文本,基本只能用LONG類型來(lái)存儲(chǔ),數(shù)據(jù)字典中很多對(duì)象的定義就是用LONG來(lái)存儲(chǔ)的。

3、LONG類型主要用于不需要作字符串搜索的長(zhǎng)串?dāng)?shù)據(jù),如果要進(jìn)行字符搜索就要用varchar2類型。

4、很多工具,包括SQL*Plus,處理LONG 數(shù)據(jù)類型都是很困難的。

5、LONG 數(shù)據(jù)類型的使用中,要受限于磁盤的大小。

能夠操作 LONG 的 SQL 語(yǔ)句:
1、Select語(yǔ)句

2、Update語(yǔ)句中的SET語(yǔ)句

3、Insert語(yǔ)句中的VALUES語(yǔ)句

限制:

1、一個(gè)表中只能包含一個(gè) LONG 類型的列。

2、不能索引LONG類型列。

3、不能將含有LONG類型列的表作聚簇。

4、不能在SQL*Plus中將LONG類型列的數(shù)值插入到另一個(gè)表格中,如insert into ...select。

5、不能在SQL*Plus中通過(guò)查詢其他表的方式來(lái)創(chuàng)建LONG類型列,如create table as select。

6、不能對(duì)LONG類型列加約束條件(NULL、NOT NULL、DEFAULT除外),如:關(guān)鍵字列(PRIMARY KEY)不能是 LONG 數(shù)據(jù)類型。

7、LONG類型列不能用在Select的以下子句中:where、group by、order by,以及帶有distinct的select語(yǔ)句中。

8、LONG類型列不能用于分布查詢。

9、PL/SQL過(guò)程塊的變量不能定義為L(zhǎng)ONG類型。

10、LONG類型列不能被SQL函數(shù)所改變,如:substr、instr。

因?yàn)閘ong類型的數(shù)值不能用insert into ... select的方法插入,故我們要分兩步走,先插入其它字段,最后再插入long類型字段,這可以通過(guò)過(guò)程來(lái)實(shí)現(xiàn).下面是一個(gè)我做實(shí)驗(yàn)實(shí)現(xiàn)的例子.

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

表已創(chuàng)建。

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

表已創(chuàng)建。

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

已創(chuàng)建 1 行。
SQL>; insert into testlong values(2,'sfg','work in guangzhou');

已創(chuàng)建 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 數(shù)據(jù)類型


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 過(guò)程已成功完成。

SQL>; select * from testlong1;

ID              NAME                       HISTORY
----------    --------------        ----------------------------------------------

1                 dwh                work in foshan
2                 sfg                 work in guangzhou
摘自http://whitechief.itpub.net/post/1825/47242


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巫溪县| 镇雄县| 衡阳县| 德钦县| 建德市| 吉安市| 定南县| 宿迁市| 梁山县| 开封市| 乌拉特中旗| 莱阳市| 综艺| 聊城市| 临泽县| 威宁| 朔州市| 农安县| 雷波县| 文昌市| 城固县| 宜兰县| 盐源县| 个旧市| 阜平县| 栾城县| 阿图什市| 西宁市| 白朗县| 莒南县| 营口市| 浪卡子县| 龙井市| 泽州县| 宿松县| 北流市| 隆子县| 廉江市| 宁远县| 高州市| 溧水县|