2012-04-12 458 views
1

我們的一個分支機構正在運行oracle sql developer中的腳本來升級他的數據庫表結構,代理&觸發器等。但是在運行腳本時,他得到了ORA-00904: Invalid Identifier Error for DBMS_LOB.SUBSTR()DBMS_LOB.GETLENGTH()在一個程序。DBMS LOB.SUBSTR拋出ORA-00904:無效的標識符錯誤

有人可以告訴我們爲什麼會這樣嗎?

有一些使用Oracle 11g的Oracle Sql Developer版本3.1.07 Build MAIN-07.42。

回答

2

我想象3個可能的原因:

  1. 用戶缺少對sys.dbms_lob執行權限(雖然 權限授予默認PUBLIC)
  2. 存在任何同義詞DBMS_LOB爲sys.dbms_lob數據庫(雖然這樣的公共同義詞必須存在)
  3. 的模式,在其客戶的作品,包含了一些其他的包具有相同名稱的DBMS_LOB
+0

由於我是新來的Oracle ......可以請你告訴我,或者與某些查詢或其他方式的幫助下,怎麼看當前的Oracle用戶是否具有在DBMS_LOB上執行特權還是不行。 – 2012-04-13 09:54:07

0

使用sys運行此sql以檢查您的模式是否有權執行DBMS_LOB。

select * from dba_tab_privs where table_name='DBMS_LOB'; 

默認情況下,您應該在受讓人中看到PUBLIC。

如果不是,您可以使用sys運行sql。

grant execute on sys.DBMS_LOB to public; 

grant execute on sys.DBMS_LOB to <your_schema_name> 
相關問題