當前位置:首頁 » 編程軟體 » oracle中如何顯示編譯錯誤

oracle中如何顯示編譯錯誤

發布時間: 2024-10-30 13:08:48

① oracle創建的觸發器帶有編譯錯誤

告訴你兩點:
1、當出現警告或者錯誤的時候,使用show error 命令,可以查看錯誤的具體信息,在信息中可以定位錯誤的具體位置。
2、你的問題是:【endif;】不能寫在一起,【end if;】是正確的。
類似的還有【end loop】 等。

---
以上,希望對你有所幫助。

② oracle 編譯包的時候,一直提示正在編譯

編譯的存儲過程的時候,程序死住,等待一會出現ora-04021錯誤解決辦法:

1.可能被鎖住

查看v$lockedselect b.sid,b.serial#,b.machine,b.terminal,b.program,b.process,b.status from v$lock a , v$session b

where a.SID = b.SID

得到死鎖session的SID,SERIAL#參看這個是否為你自己用戶下的,然後kill掉session

2.可能被掛起

查看v$session_waitselect b.serial#,a.* from v$session_wait a,v$session
bwhere a.sid = b.sid得到等待的session的sid和serial#3.查看dba_ddl_locksselect
session_id sid, owner, name, type,

mode_held held, mode_requested request

from dba_ddl_locks
where name = '&your_package_name'

③ oracle 警告創建的過程帶有編譯錯誤

1. 創建完存儲過程(在命令行),可以用showerr看具體錯誤
2. 可以在PLsql中,輸入"全班排名", 然後俺右鍵->編輯,看到具體錯誤
3. 你的sql從from後一直到group by的分號;是多餘的,即便單獨在SQL窗口也會報錯
SQL應該改成
select b.學號,a.姓名, avg(a.成績) 平均分,sum(a.成績) 總分

from 成績信息表 a
join 學籍信息表 b on (a.學號=b.學號)
join 班級信息表 c on (c.班級號=b.班級號)
where c.班級名稱=class
group by b.學號
order by avg(成績) ,b.學號 desc;
4. 存儲過程不能直接用SQL,要用游標或select……into方式
比如:
create or replace procere 全班排名(
class in char(8)
)
as
cursor cur(p_class char(8)) is
select b.學號,a.姓名, avg(a.成績) 平均分,sum(a.成績) 總分

from 成績信息表 a
join 學籍信息表 b on (a.學號=b.學號)
join 班級信息表 c on (c.班級號=b.班級號)
where c.班級名稱=class
group by b.學號
order by avg(成績) ,b.學號 desc;
rs cur%rowtype;
begin
for rs in cur(class) loop
dbms_output.put_line(rs.學號||','||rs.姓名||','||rs.平均分||','||rs.總分);
end loop;
end;

④ Oracle使用merge into 編寫存儲過程 遇編譯錯誤:PL/SQL: ORA-00926: 缺失 VALUES 關鍵字

Oracle使用merge into 編寫存儲過程 遇編譯錯誤,是設置錯誤造成的,解決方法如下:

1、首先新建存儲過程,Create or ReplaceProcere CHK_SYS_EMP 檢查系統工號。

⑤ Oracle SQL*PLUS中設置trigger為何總是編譯錯誤

編譯錯誤一般是trigger的寫法有誤。

Oracle中trigger語法:

CREATE[ORREPLACE]TRIGGERtrigger_name
{BEFORE|AFTER}
{INSERT|DELETE|UPDATE[OFcolumn[,column…]]}
[OR{INSERT|DELETE|UPDATE[OFcolumn[,column…]]}...]
ON[schema.]table_name|[schema.]view_name
[REFERENCING{OLD[AS]old|NEW[AS]new|PARENTasparent}]
[FOREACHROW]
[WHENcondition]
PL/SQL_BLOCK|CALLprocere_name;

具體的內容需要根據需求來編寫。

⑥ 為什麼oracle 新建存儲過程時,出現「創建過程帶有編譯錯誤」 ,求大神們幫助。因為沒財富了,所以沒懸賞了

先不說別的,就是insert into後必須要提交,否則插不進數據造成表被鎖
再一個,你那倆參數ASSIGN_PK和CLASS_PK 是要輸入的么?
輸入的話要加上in,要不是輸入,在後邊取出的,至少也得賦值,這里就姑且當做你是要輸入的兩個參數吧。

create or replace procere add_t
(ASSIGN_PK IN VARCHAR2 ,
CLASS_PK IN VARCHAR2)
IS
BEGIN
INSERT INTO add_t values(''||ASSIGN_PK||'',''||CLASS_PK||'');
commit;
END;

熱點內容
xp電腦開機密碼怎麼設置 發布:2024-10-30 15:25:57 瀏覽:784
壓縮包文件亂碼 發布:2024-10-30 15:19:05 瀏覽:847
電腦的密碼怎麼改密碼怎麼設置路由器設置 發布:2024-10-30 15:04:53 瀏覽:270
安卓手機充電電量倒退是什麼原因 發布:2024-10-30 15:04:03 瀏覽:839
vb顯示資料庫數據 發布:2024-10-30 15:03:50 瀏覽:290
國外php 發布:2024-10-30 14:59:34 瀏覽:72
androidcheckbox位置 發布:2024-10-30 14:52:39 瀏覽:807
linux內核與linux系統 發布:2024-10-30 14:51:40 瀏覽:962
whilelooppython 發布:2024-10-30 14:47:12 瀏覽:260
安卓手機如何取消優化應用 發布:2024-10-30 14:23:34 瀏覽:319