1樓:千鋒教育
create or replace procedure job_table asv_sql varchar2(2000);begin v_sql:='create table job_test2 as select * from job_test'; execute immediate v_sql; exception when others then rollback;end job_table; 儲存過程內不能直接使用create或alter,需要使用execute執行動態語句才可以 還有執行儲存過程,必須在命令視窗內執行
2樓:匿名使用者
先定義包規範:create or replace package zhidao_pkg astype t_retset is ref cursor;procedure test_proc (condition1 varchar2,condition2 varchar2,condition3 varchar2,condition4 varchar2,r_cursor out t_retset,status out int);end zhidao_pkg;包體建立create or replace package body zhidao_pkg isprocedure test_proc (condition1 varchar2,condition2 varchar2,condition3 varchar2,condition4 varchar2,r_cursor out t_retset,status out int) as begin .end zhidao_pkg;呼叫:
sql> var cur refcursorsql> var stas intsql> exec test(10,:cur,:stas)pl/sql 過程已成功完成。
sql> print :cursql> print :stas希望對你有幫助,有問題再追問吧,望採納。
plsql中如何執行儲存過程?
3樓:小丁創業
實現的方法和詳細的操作步驟如下:
1、第一步,雙擊plsql圖示進入登入介面,輸入使用者名稱和密碼,然後傳輸資料庫例項名稱,如下圖所示,然後進入下一步。
2、其次,完成上述步驟後,單擊左上角的“new”選項,然後單擊“sql window”以進入資料庫介面,如下圖所示,然後進入下一步。
3、接著,該圖是資料庫儲存過程的簡單佈局。
存在儲存過程的定義,包括輸入變數,輸出變數等。輸入變數由in定義,輸出由out定義;可變部分:可以根據程式要求定義;資料處理邏輯部分:
諸如新增,刪除和修改差異表之類的操作;異常處理部分:處理程式異常執行時的處理。
如下圖所示,然後進入下一步。
4、然後,完成上述步驟後,編寫儲存過程時,需要單擊左上角的執行按鈕或快捷鍵f8,然後可以在編譯後除錯程式。找到需要除錯的儲存過程,右鍵單擊“test”,進入除錯介面,如下圖所示,然後進入下一步。
5、隨後,完成上述步驟後,單擊左上角的除錯按鈕,如下圖所示,然後進入下一步。
6、最後,完成上述步驟後,下圖中標記的區域是除錯按鈕,可以單步執行,跳過整個部分或跳出,如下圖所示。這樣,問題就解決了。
4樓:
要成功執行這個儲存過程,你需要注意幾點:
1.select * from ods_area; 不能直接在pl/sql 中作為語句執行。
應該用 select 欄位 into plsql變數 from 表名;
的形式來獲取表中的資料,儲存到plsql變數中。
2. 儲存過程的語法格式為:
create or replace procedure area
is--變數宣告;
begin
--過程主體;
end area;
3. 如果儲存過程**無誤,可以通過 "/" 來執行**,編譯儲存過程。
4.通過exec 或 execute 來呼叫編譯後的儲存過程。
例如:-- 建立procedure:
create or replace procedure area
isnum number ;
v_arearecord dual%rowtype;
begin
--例子1
select * into v_arearecord from dual;
--例子2
select 12345 into num from dual;
end area;
/-- 通過 / 執行;
--呼叫
exec area;
5樓:
create or replace procedure job_table as
v_sql varchar2(2000);
begin
v_sql:='create table job_test2 as select * from job_test';
execute immediate v_sql;
exception
when others
then
rollback;
end job_table;
儲存過程內不能直接使用create或alter,需要使用execute執行動態語句才可以
還有執行儲存過程,必須在命令視窗內執行
6樓:匿名使用者
貼一下錯誤提示,先編譯通過再去執行。
7樓:月殤傾城榒
out 引數需要設定一個變數接收返回值
執行:declare
test sys_refcursor
begin
wyl_sp1(test);
dbms_output.put_line(test);
end;
請採納。
如何在儲存過程定義臨時變數,如何在儲存過程定義乙個臨時變數?
create procedure prc temp v in in char,v out out char as v temp char 1 begin v temp 1 if v in 0 then v out v temp else v out v in end if end 這一段裡面v in...
儲存過程插入,如何在儲存過程中實現插入更新資料
資料型別不匹配的原因吧,你在檢查下。還有缺少乙個end與begin對應 缺少乙個end與begin對應 如何在儲存過程中實現插入更新資料 pl sql寫儲存過程,怎麼插入新資料 在儲存過程中插入資料肯定用到sql語句,寫好insert語句就好了。create or replace procedure...
oracle pl sql儲存過程如何執行,我選專案後右鍵test測試什麼反應都沒有
沙歆奚舒 不管你建立的觸發器是insert update delete型別!其執行順序都是按照的你sql語句!你一條sql語句不會執行三種型別,所以沒啥順序!如,a表建立了觸發器有這三種型別 在你操作a表的刪除語句時,a表就只會去尋找delete要執行的語句! 如果 procedure everym...