【PL/SQL】使用變數傳遞方法生成表更名的SQL語句
在某些情況下需要將PL/SQL中的一個變數的值修改後傳給另外一個變數以便實現複雜的需求,這也是變數傳遞魅力所在。
這裡我以一個透過變數傳遞的方法生成修改表名的SQL語句為例給大家演示一下,供參考。
1.為演示方便,建立4個表。
sec@ora10g> create table t1 (x int);
sec@ora10g> create table t2 (x int);
sec@ora10g> create table t3 (x int);
sec@ora10g> create table t4 (x int);
2.PL/SQL塊及執行結果
sec@ora10g> declare
2 cursor c
3 is
4 select table_name from user_tables;
5
6 v_table_name varchar2 (200);
7 v_table_name_new varchar2 (200);
8 begin
9 v_table_name := '';
10
11 open c;
12
13 loop
14 fetch c into v_table_name;
15
16 exit when c%notfound;
17
18 select v_table_name || '_NEW_NAME' into v_table_name_new
19 from DUAL;
20
21 DBMS_OUTPUT.put_line ('The old name is: ' || v_table_name);
22 DBMS_OUTPUT.put_line ('The new name is: ' || v_table_name_new);
23 DBMS_OUTPUT.put_line( 'alter table '
24 || v_table_name
25 || ' rename to '
26 || v_table_name_new
27 || ';');
28 DBMS_OUTPUT.put_line ('');
29 end loop;
30
31 close c;
32 end;
33 /
The old name is: T1
The new name is: T1_NEW_NAME
alter table T1 rename to T1_NEW_NAME;
The old name is: T2
The new name is: T2_NEW_NAME
alter table T2 rename to T2_NEW_NAME;
The old name is: T3
The new name is: T3_NEW_NAME
alter table T3 rename to T3_NEW_NAME;
The old name is: T4
The new name is: T4_NEW_NAME
alter table T4 rename to T4_NEW_NAME;
PL/SQL procedure successfully completed.
使用上面生成的指令碼便可完成表的批次更名需求。
3.小結
當然實現上面這個需求使用簡單的SQL也可以達到目的,這裡以實現生成表更名SQL需求為例,演示一下PL/SQL的變數傳遞。
可以在上面的基礎上編寫更加複雜的指令碼,進而可以完成很多複雜的需求。
Good luck.
secooler
09.12.04
-- The End --
這裡我以一個透過變數傳遞的方法生成修改表名的SQL語句為例給大家演示一下,供參考。
1.為演示方便,建立4個表。
sec@ora10g> create table t1 (x int);
sec@ora10g> create table t2 (x int);
sec@ora10g> create table t3 (x int);
sec@ora10g> create table t4 (x int);
2.PL/SQL塊及執行結果
sec@ora10g> declare
2 cursor c
3 is
4 select table_name from user_tables;
5
6 v_table_name varchar2 (200);
7 v_table_name_new varchar2 (200);
8 begin
9 v_table_name := '';
10
11 open c;
12
13 loop
14 fetch c into v_table_name;
15
16 exit when c%notfound;
17
18 select v_table_name || '_NEW_NAME' into v_table_name_new
19 from DUAL;
20
21 DBMS_OUTPUT.put_line ('The old name is: ' || v_table_name);
22 DBMS_OUTPUT.put_line ('The new name is: ' || v_table_name_new);
23 DBMS_OUTPUT.put_line( 'alter table '
24 || v_table_name
25 || ' rename to '
26 || v_table_name_new
27 || ';');
28 DBMS_OUTPUT.put_line ('');
29 end loop;
30
31 close c;
32 end;
33 /
The old name is: T1
The new name is: T1_NEW_NAME
alter table T1 rename to T1_NEW_NAME;
The old name is: T2
The new name is: T2_NEW_NAME
alter table T2 rename to T2_NEW_NAME;
The old name is: T3
The new name is: T3_NEW_NAME
alter table T3 rename to T3_NEW_NAME;
The old name is: T4
The new name is: T4_NEW_NAME
alter table T4 rename to T4_NEW_NAME;
PL/SQL procedure successfully completed.
使用上面生成的指令碼便可完成表的批次更名需求。
3.小結
當然實現上面這個需求使用簡單的SQL也可以達到目的,這裡以實現生成表更名SQL需求為例,演示一下PL/SQL的變數傳遞。
可以在上面的基礎上編寫更加複雜的指令碼,進而可以完成很多複雜的需求。
Good luck.
secooler
09.12.04
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-621700/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL 動態sql語句例SQL
- PL/SQL與DDL語句SQL
- SQL語句圖表生成工具ChartSQLSQL
- 【PL/SQL】向表中插入連續數字之PL/SQL方法SQL
- 定時生成分月表sql語句SQL
- PL/SQL 條件控制語句SQL
- PL/SQL迴圈控制語句SQL
- sql宣告變數,及if -else語句、while語句的用法SQL變數While
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- 【Tips】使用SQL生成外來鍵的SQL建立語句SQL
- 利用pl/sql執行本地的sql檔案中的sql語句SQL
- PLSQL Language Reference-PL/SQL語言基礎-變數賦值-使用賦值語句賦值SQL變數賦值
- PL/SQL變數作用域SQL變數
- V$sql查詢未使用繫結變數的語句SQL變數
- oracle找出沒有使用繫結變數的sql語句Oracle變數SQL
- 尋找沒有使用繫結變數的sql語句變數SQL
- 【SQLLDR】使用SQL*Loader輔助生成外部表建立語句SQL
- excel表結構生成powerDesigner模型,生成建表語句sqlExcel模型SQL
- jsqlparser使用記錄---生成sql語句JSSQL
- SQL Server將直接傳遞查詢作為表使用的方法SQLServer
- Sql建表語句SQL
- sql 建表語句SQL
- sql語句建立表SQL
- PLSQL Language Reference-PL/SQL子程式-子程式引數-子程式引數傳遞方法SQL
- GOTO語句在PL/SQL中的應用GoSQL
- Oracle 的PL/SQL語言使用OracleSQL
- 統計未用繫結變數的sql語句變數SQL
- PL/SQL 02 宣告變數 declareSQL變數
- SQL 語句調優_SQL傳遞引數的資料型別與表索引欄位型別保持一致SQL資料型別索引
- pl/sql 過程中變數未初始化導致update語句失敗SQL變數
- SQL 語句select top 變數問題SQL變數
- Linux/Unix shell sql 之間傳遞變數LinuxSQL變數
- PLSQL Language Referenc-PL/SQL靜態SQL-靜態SQL的描述-語句SQL
- PL/SQL-遊標和遊標變數的使用SQL變數
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- 【轉義】使用SQL生成SQL語句時單引號的轉義處理之q'{}'方法SQL
- 使用SQL MERGE語句組合表SQL
- sql 中的with 語句使用SQL