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

首頁(yè) > 開發(fā) > 綜合 > 正文

集合和成員函數(shù)

2024-07-21 02:33:21
字體:
供稿:網(wǎng)友

  有時(shí)也被稱為索引表(index-by tables),可以在PL/SQL中使用,能夠模擬數(shù)組的非永久表。
  
  用法:
  
  1、 定義一個(gè)PL/SQL表類型
  
  2、 聲明這種類型的變量。
  
  3、 將記錄添加到PL/SQL表中,并采用與引用數(shù)組元素大體相同的方式引用他們
  
  語(yǔ)法:p233
  
  特點(diǎn):只能有一列和一個(gè)主健。但是可以有無數(shù)的行
  
  舉例:
  
  set serveroutput on
  
  declare               --定義PL/SQL表
  
  type my_text_table_type is table of varchar2(200)
  
  index by binary_integer;
  
  type my_emp_table_type is table of employees%rowtype
  
  index by binary_integer;
  
  l_text_table my_text_table_type;
  
  l_emp_table my_emp_table_type;
  
  begin
  
  l_text_table(1) :=’donny’;
  
  l_text_table(2) :=’Chen’;
  
  l_emp_table(10).employee_id :=10;
  
  l_emp_table(10).first_name   :=’Sean’;
  
  l_emp_table(10).last_name   :=’Dillon’;
  
  l_emp_table(10).email           :=’donny@hotmail’;
  
  l_emp_table(10).hire_date       :=sysdate;
  
  l_emp_table(10).job_id       :=’HR’;
  
  l_emp_table(20).employee_id :=20;
  
  l_emp_table(20).first_name   :=’Chris’;
  
  l_emp_table(20).last_name   :=’Doo’;
  
  l_emp_table(20).email           :=’donny@sina’;
  
  l_emp_table(20).hire_date       :=sysdate-5;
  
  l_emp_table(20).job_id       :=’IT’;
  
  dbms_output.put_line(l_text_table.count);
  
  dbms_output.put_line(l_emp_table.count);
  
  dbms_output.put_line(l_text_table(1));
  
  dbms_output.put_line(l_text_table(2));
  
  dbms_output.put_line(l_emp_table(1).first_name);
  
  dbms_output.put_line(l_emp_table(2).first_name);
  
  end;
  
  /
  
  關(guān)于索引算子:
  
  必須是合法的BINARY_INTEGER,介于--2的31次冪~2的31次冪
  
  從PL/SQL表中刪除記錄:
  
  declare               --定義PL/SQL表
  
  type my_text_table_type is table of varchar2(200)
  
  index by binary_integer;
  
  l_text_table my_text_table_type;
  
  l_empty_table my_text_table_type;
  
  begin
  
  l_text_table(10):=’A value’;
  
  l_text_table(20):=’Another value’;
  
  l_text_table(30):=’third value’;
  
  dbms_output.put_line(l_text_table.count);
  
  l_text_table.DELETE(20);
  
  dbms_output.put_line(l_text_table.count);
  
  l_text_table.DELETE;
  
  dbms_output.put_line(l_text_table.count);
  
  l_text_table(15):=’some text’;
  
  l_text_table(25):=’ some more text’;
  
  dbms_output.put_line(l_text_table.count);
  
  l_text_table:=l_empty_table;
  
  dbms_output.put_line(l_text_table.count);
  
  end;
  
  /
  
  FIRST / NEXT / LAST:
  
  我們知道count返回表中行的數(shù)量。

  
  FIRST: 返回PL/SQL表中“第一個(gè)”或者最小的索引。LAST則是最后一個(gè)。
  
  NEXT返回PL/SQL表中當(dāng)前索引的下一個(gè)索引。NEXT有一個(gè)參數(shù),即當(dāng)前的索引。
  
  Conn scott/tiger
  
  Set serveroutput on
  
  Declare
  
  type my_text_table_type is table of varchar2(200)
  
  index by binary_integer;
  
  l_text_table my_text_table_type;
  
  l_index number;
  
  begin
  
  for emp_rec in (select * from emp) loop
  
  l_text_table(emp_rec.empno):=emp_rec.ename;
  
  end loop;
  
  l_index:= l_text_table.first;
  
  loop
  
  exit when l_index is null;
  
  dbms_output.put_line(l_index ’:’ l_text_table(l_index));
  
  l_index :=l_text_table.next(l_index);
  
  end loop;
  
  end;
  
  /
  
  記錄:
  
  TYPE <記錄名稱> IS RECORD(
  
  字段名1 類型;
  
  字段名2 類型;
  
  。。。。。。
  
  );
  
  記錄可以擁有任意數(shù)目的不同數(shù)據(jù)類型的列,而PL/SQL表卻不是這樣的,只能有一列和一個(gè)主健。
  
  declare
  
  type location_record_type is record(
  
  street_address  varchar2(40),
  
  postal_code     varchar2(40),
  
  city           varchar2(30),
  
  state_PRovince   varchar2(25),
  
  contry_id       char(2) not null :=’US’
  
  );
  
  l_my_loc location_record_type;
  
  begin
  
  l_my_loc.street_address:=’
  
  Oracle street
  ’;
  l_my_loc.postal_code:=’10010’;
  
  l_my_loc.city:=’Reston’;
  
  l_my_loc.state_province:=’CA’;
  
  dbms_output.put_line(l_my_loc.street_address);
  
  dbms_output.put_line(l_my_loc.postal_code);
  
  dbms_output.put_line(l_my_loc.city);
  
  dbms_output.put_line(l_my_loc.state_province);
  
  end;
  
  /
  
  綁定變量:
  
  declare
  
  type Numtab is table of char(15) index by binary_integer;
  
  type Nametab is table of char(25) index by binary_integer;
  
  vnums Numtab;
  
  vname Nametab;
  
  t1 char(5);
  
  t2 char(5);
  
  t3 char(5);
  
  procedure get_time( t out number) is
  
  begin
  
  select to_char(sysdate,’sssss’) into t from dual;
  
  end;
  
  begin
  
  for j in 1.. 15000 loop
  
  vnums(j) :=j;
  
  vname(j) :=’vendor nmane ‘ to_char(j);
  
  end loop;
  
  get_time(t1);
  
  forall i in 1.. 15000
  
  insert into vender values(vnums(i), vname(i));
  
  get_time(t2);
  
  for i in 1.. 15000 loop
  
  insert into vender values(vnums(i), vname(i));
  
  end loop;
  
  get_time(t3);
  
  dbms_output.put_line(‘Forall loop ’ to_char(t2-t1));

  
  dbms_output.put_line(‘For loop ’ to_char(t3-t2));
  
  end;
  
  /
  
  declare
  
  type Numtab is table of char(15) index by binary_integer;
  
  type Nametab is table of char(25) index by binary_integer;
  
  vnums Numtab;
  
  vname Nametab;
  
  cursor c1 is select * from vender;
  
  begin
  
  open c1;
  
  fetch c1 bulk collect into vnums, vname;
  
  dbms_output.put_line(vnums.count);
  
  close c1;
  
  end;
  
  /
  
  create or replace type add_ty as object(
  
  h_no number(3),
  
  h_street varchar2(20),

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 兰西县| 威远县| 孟连| 武宣县| 大邑县| 获嘉县| 安塞县| 夏河县| 绥宁县| 红桥区| 双牌县| 耿马| 荥阳市| 兴海县| 昌图县| 尼木县| 察哈| 宣武区| 简阳市| 镇原县| 墨竹工卡县| 当雄县| 惠安县| 霍林郭勒市| 广昌县| 海淀区| 阜南县| 新晃| 普陀区| 民勤县| 米脂县| 句容市| 青海省| 高雄县| 乌鲁木齐市| 佛山市| 莲花县| 海安县| 东城区| 章丘市| 贵阳市|