09動態sql示例

/*
* 1:動態建表,
  2:插入數據
  3:統計查詢數據
  4:將表刪除。
*/

declare
  v_sql   varchar2(100);
  v_count number;
  v_maxID number;
begin
  --先刪除表。
  select count(1) into v_count from tab where TName = 'T_TEMP';
  if v_count > 0 then
    dbms_output.put_line('表存在,刪除');
    v_sql := 'drop table T_Temp';
    execute immediate v_sql;
  end if;
  v_sql := 'create table T_Temp(id number primary key,test_name varchar2(30))';
  execute immediate v_sql;

  for v_i in 1 .. 10 loop
    v_sql := 'insert into T_temp (id, test_name) values (' || v_i ||
             ', ''名稱_'' || ' || v_i || ')';
    execute immediate v_sql;
  end loop;
  commit;

  --取數據
  v_sql := 'select max(id) From T_Temp';
  execute immediate v_sql
    into v_maxID;

  dbms_output.put_line('v_maxID = ' || v_maxID);

  --刪除表
  v_sql := 'drop table T_TEmp';
  execute immediate v_sql;
end;

--select * from user_tables;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章