1、dml(資料操縱語言) 有:select/update/delete/insert。如何用儲存過程實現這些功能呢。
2、ddl(資料定義語言) 有:create/alter/drop/modify。以下通過例項學習這些語言。
3、dcl(資料控制語言) 有:grant/deny/revoke。
在儲存過程中,如果想要實現表的建立、更新、插入等操作,可以使用動態sql語句。在儲存過程中不能使用靜態sql實現表的建立等。還有select xx into v_xx這樣就不行了,返回不了值。要使用
str_access_numbernumber;
str_sql := 』select count(*) from table_name a where a.id=:id』;
execute immediate str_sql into str_access_number;
其中:str_sql是一slectt語句,是varchar字元變數。str_access_number是對應要插入的欄位名。
在儲存過程中建立表的實現:
建立儲存過程
create or replace procedure create_table
as p_s varchar2(2000);
begin
p_s:='create table supplier (
supplier_id numeric(10) not null,
supplier_name varchar2(50) not null,
contact_name varchar2(50),
constraint supplier_pk primary key (supplier_id)
)' ;--建立表的sql語句
execute immediate p_s;--執行p_s中的語句,建立supplier 表
exception
when others then
null;
end;
execute create_table;--執行儲存過程,表建立成功
declare
x number := 100;
begin
for i in 1..10 loop
if mod(i, 2) = 0 then
insert into supplier values(i, x,': is even');
else
insert into supplier values(i, x,': is odd');
end if;
x := x + 100;
end loop;
end;
sql儲存過程學習例項
什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql 語句而已啊?microsoft公司為什麼還要新...
sql儲存過程學習例項
什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...
sql儲存過程學習例項
什麼是儲存過程呢?定義 將常用的或很複雜的工作,預先用sql語句寫好並用乙個指定的名稱儲存起來,那麼以後要叫資料庫提供與已定義好的儲存過程的功能相同的服務時,只需呼叫execute,即可自動完成命令。講到這裡,可能有人要問 這麼說儲存過程就是一堆sql語句而已啊?microsoft公司為什麼還要新增...