當前位置:首頁 » 存儲配置 » 存儲過程ora00900

存儲過程ora00900

發布時間: 2023-06-14 01:53:47

A. 錯誤ora 00900 06512

可能是沒有許可權。雖然當前用戶執行語句是有許可權的,但是放到存儲過程中就必須要顯式的賦個許可權給當前用戶。以下參考
【IT168 技術文檔】我們知道,用戶擁有的role許可權在存儲過程是不可用的。如:

sql> select * from dba_role_privs where grantee='SUK';

GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------ ------------ ------------ ------------
SUK DBA NO YES
SUK CONNECT NO YES
SUK RESOURCE NO YES

--用戶SUK擁有DBA這個role

--再創建一個測試存儲過程:
create or replace procere p_create_table
is
begin
Execute Immediate 'create table create_table(id int)';
end p_create_table;

--然後測試
SQL> exec p_create_table;

begin p_create_table; end;

ORA-01031: 許可權不足
ORA-06512: 在"SUK.P_CREATE_TABLE", line 3
ORA-06512: 在line 1

--可以看到,即使擁有DBA role,也不能創建表。role在存儲過程中不可用。
--遇到這種情況,我們一般需要顯式進行系統許可權,如grant create table to suk;
--但這種方法太麻煩,有時候可能需要進行非常多的授權才能執行存儲過程
--實際上,oracle給我們提供了在存儲過程中使用role許可權的方法:
--修改存儲過程,加入Authid Current_User時存儲過程可以使用role許可權。
create or replace procere p_create_table
Authid Current_User is
begin
Execute Immediate 'create table create_table(id int)';
end p_create_table;

--再嘗試執行:
SQL> exec p_create_table;

PL/SQL procere successfully completed

--已經可以執行了。

B. ORA-00900: 無效 SQL 語句

帖這東西沒用
把你那個sql貼出來

-----------
String sql = "intsert into students values(?,?,?,?)";
你這幾個問號是什麼啊?是參數也沒參數,光插問號的話類型可能還不符合呢

C. 存儲過程一直報錯 但是編譯成功了 也沒有錯 調用時一直不成功報錯

下面是問題:
Oraclede 環境中,客戶那邊提出,執行存儲過程時出錯,信息:DBCustomException: ORA-00900: invalid SQL statement

關於這個問題之前也遇到過,一直找不到原因,沒解決,時好時壞,,由於客戶大部分是SQL Server,也就沒太在意,現在終於麻煩來了。

我用自己創建的用戶,通過P/L SQL 登陸,執行以下語句
--創建表
 create table ttt
 (
    aa varchar(20)
 )
 
 --創建存儲過程
 CREATE OR REPLACE PROCEDURE   myproc  
  AS  BEGIN  
  select * from ttt;
 END 
 --執行
 exec myproc 

執行存儲過程時,開始報錯:ORA-00900:無效SQL語句 (上面那個錯誤的中文版-_-!)
這時候看右邊的存儲過程如下,有個紅叉,

熱點內容
蘋果系統源碼 發布:2025-03-26 10:12:36 瀏覽:794
阿里雲伺服器7代 發布:2025-03-26 09:57:05 瀏覽:249
虛擬機和真機開發安卓哪個好 發布:2025-03-26 09:54:00 瀏覽:386
Python在vs寫 發布:2025-03-26 09:51:00 瀏覽:592
高速dns伺服器地址查詢 發布:2025-03-26 09:50:58 瀏覽:231
配置虛擬區域網是什麼 發布:2025-03-26 09:28:20 瀏覽:202
在WIN10使用linux 發布:2025-03-26 09:27:55 瀏覽:38
朗逸為什麼都是安卓大屏 發布:2025-03-26 09:24:03 瀏覽:810
編程技術入侵 發布:2025-03-26 09:06:43 瀏覽:400
編譯原理自下而上 發布:2025-03-26 08:49:48 瀏覽:263