oracle建立儲存過程有小紅叉儲存過程新手請

2022-03-08 13:16:47 字數 2981 閱讀 7971

1樓:匿名使用者

說一下你的問題

在儲存過程中,一個select語句中,查詢的欄位必須要放到變數中也就是select 欄位1 into 變數1 from 表名 where 條件;

這樣才不會報錯

而你這個,沒什麼實際的意義

你要是非想讓它不紅叉,可以這樣

create or replace procedure p_tf_f_hot_check

( title in varchar2)

isv_hot_id int;

v_hot_title varchar2(200);

v_keyword varchar2(200);

begin

select hot_id,hot_title,keyword into v_hot_id,v_hot_title,v_keyword from tf_f_hot where hot_title = title;

end;

變數型別你自己再改一下

2樓:

create or replace procedure p_tf_f_hot_check(

title in varchar2)is

begin

select hot_id, hot_title,keyword from tf_f_hot where hot_title = title;

end;

第四行的換成as試試

pl sql啟動後儲存過程上邊有個小紅叉,怎麼回事?

3樓:記住俺是誰

儲存過程或其他物件如函式、觸發器紅叉有幾種可能:

1、程式本身存在編譯錯誤,即編譯未通過,此時需檢視具體錯誤以改正。

2、程式長時間未呼叫後失效需重新編譯(無需手動編譯)。屬正常現象。

3、主程式中呼叫的其他程式做過改動和編譯,主程式未即時編譯。屬正常現象,重新編譯即可!

本人是用plsql開發 2年,希望對你有幫助!

plsql中如何執行儲存過程?

4樓:小丁創業

實現的方法和詳細的操作步驟如下:

1、第一步,雙擊plsql圖示進入登入介面,輸入使用者名稱和密碼,然後傳輸資料庫例項名稱,如下圖所示,然後進入下一步。

2、其次,完成上述步驟後,單擊左上角的「new」選項,然後單擊「sql window」以進入資料庫介面,如下圖所示,然後進入下一步。

3、接著,該圖是資料庫儲存過程的簡單佈局。

存在儲存過程的定義,包括輸入變數,輸出變數等。輸入變數由in定義,輸出由out定義;可變部分:可以根據程式要求定義;資料處理邏輯部分:

諸如新增,刪除和修改差異表之類的操作;異常處理部分:處理程式異常執行時的處理。

如下圖所示,然後進入下一步。

4、然後,完成上述步驟後,編寫儲存過程時,需要單擊左上角的執行按鈕或快捷鍵f8,然後可以在編譯後除錯程式。找到需要除錯的儲存過程,右鍵單擊「test」,進入除錯介面,如下圖所示,然後進入下一步。

5、隨後,完成上述步驟後,單擊左上角的除錯按鈕,如下圖所示,然後進入下一步。

6、最後,完成上述步驟後,下圖中標記的區域是除錯按鈕,可以單步執行,跳過整個部分或跳出,如下圖所示。這樣,問題就解決了。

5樓:

要成功執行這個儲存過程,你需要注意幾點:

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;

6樓:

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執行動態語句才可以

還有執行儲存過程,必須在命令視窗內執行

7樓:匿名使用者

貼一下錯誤提示,先編譯通過再去執行。

8樓:月殤傾城榒

out 引數需要設定一個變數接收返回值

執行:declare

test sys_refcursor

begin

wyl_sp1(test);

dbms_output.put_line(test);

end;

請採納。

oracle怎麼寫儲存過程,oracle 儲存過程,寫一個簡單的Oracle儲存過程

給你示例你參考下 建立儲存過程 create or replace procedure p name 儲存過程名字 i var in int,輸入引數1 o var out varchar2 輸出引數1 is v str varchar2 200 定義儲存過程內部的區域性變數 begin 下面是儲存...

oracle儲存過程as和is區別

第一個問題 is和as是可以互用的,用哪個都沒關係的第二個問題 在外專面 第三個問題 過程屬中沒有declare關鍵字,declare用在語句塊中 第四個問題 估計你看到的是做遊標定義的東東,抑或者直接就一句sql。沒區別,我更喜歡用as,因為用鍵盤比較方便 oracle儲存過程中is和as的區別?...

oracle儲存過程轉換型別問題

你的to date 2010 12 30 yyyy mm dd 函式寫錯了,因為減號的優先順序比 高,2010 12 30 得到的是一個4位數,寫成下面這樣就行了 to date 2010 12 1 yyyy mm dd 還有這樣寫雖然oracle寫可以,年月最好寫的規範一點,寫成to date 2...