sqlplus存儲過程
1. 如何查詢oracle庫中已經存在的存儲過程
命令行:
sqlplus / as sysdba
select name from user_source where type='PROCEDURE';
可查看sys用戶下所有存儲過程名字
select text from user_source where name='XXX'
可查看該存儲過程的內容
plSQLdevloper工具:
左側找到『Proceres』,點開之後即可查看當前用戶的所有存儲過程。
右鍵點擊存儲過程,選擇『view』可查看詳細信息
2. oracle 怎樣查看已經存在的函數,過程
工具sqlplus或者plsqldeveloper
方法一:sqlplus
①登錄用戶後,執行下面語句查看當前用戶有哪些存儲過程:
select name from user_source where type='PROCEDURE';
或者:
select object_name from user_proceres;
或者:
select object_name from user_objects where object_type='PROCEDURE' ;
②找到你所要查詢的存儲過程名字後,執行下面操作,可以看到存錯過程內容:
select text from user_source where name ='xxxx';--(xxxx代表所要查詢的存儲過程名字)
------------------------------------------------
如果是函數,類似的方法,只需要把PROCEDURE,換成FUNCTION即可
-----------------------------------------------
方法二:pl/sql developer
打開該工具後,在最左側可以看到如下截圖,選擇 My objects
3. 如何把oracle存儲過程保存到資料庫里
sqlplus 中直接敲入存儲過程代碼(create or replace procere ...), / 結束,
如果代碼沒有錯誤,該過程就被保存到資料庫中。
可以用 exec 過程名 運行。
如果是plsql developer之類的工具,那更簡單,編輯完存儲過程後,有運行按鈕,點擊即可。
4. 用sqlplus命令窗口執行oracle 存儲過程,關閉對話窗口後,存儲過程仍然執行
我測試過,如果中途中斷的話,存儲過程不會再執行。如果存儲過程裡面沒有寫commit的話數據就不會變更。
createorreplaceproceret_emp(resoutvarchar2)is
begin
foriin1..100000loop
insertintoemp(empno,ename,hiredate)values(i,'Sysuser'||to_char(i),sysdate);
--commit;
endloop;
res:='OK';
exception
whenothersthen
rollback;
res:='NG;'||SQLERRM;
end;
5. PLSQL修改了存儲過程如何編譯保存
如果是在plsql developer中修改的,可以直接點那個齒輪圖標,或者F8即可編譯。
如果是在sqlplus中,那就敲入修改後的過程代碼(create or replace procere...),最後以/結尾運行即可。
6. PL_sql如何執行oracle存儲過程
要成功執行這個存儲過程,你需要注意幾點:
1.select * from ods_area; 不能直接在pl/sql 中作為語句執行。
應該用 select 欄位 into plsql變數 from 表名;
的形式來獲取表中的數據,保存到plsql變數中。
2. 存儲過程的語法格式為:
create or replace procere area
is
--變數聲明;
begin
--過程主體;
end area;
3. 如果存儲過程代碼無誤,可以通過 "/" 來執行代碼,編譯存儲過程。
4.通過exec 或 execute 來調用編譯後的存儲過程。
例如:
-- 創建procere:
create or replace procere area
is
num number ;
v_areaRecord al%ROWTYPE;
begin
--例子1
select * into v_areaRecord from al;
--例子2
select 12345 into num from al;
end area;
/
-- 通過 / 執行;
--調用
exec area;