exp匯出出現:ORA-00904::invalididentifier
相關文章:
《exp匯出出現:ORA-00904: “POLTYP”: invalid identifier》:http://blog.itpub.net/23135684/viewspace-680615/
客戶反映將JFY使用者下的某個表的欄位由VARCHAR2(50)調整為VARCHAR2(100)之後,執行exp匯出時收到如下的報錯:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
Note: grants on tables/views/sequences/roles will not be exported
About to export specified users …
. exporting pre-schema procedural objects and actions
. exporting foreign function library names for user JFY
. exporting PUBLIC type synonyms
EXP-00008: ORACLE error 904 encountered
ORA-00904: : 識別符號無效
EXP-00000: Export terminated unsuccessfully
客戶的exp匯出操作是在資料庫伺服器段完成的,且排程指令碼已經穩定執行了1年多,在調整欄位長度後出現該報錯。指令碼中exp的語句如下:
exp jfy/xxx BUFFER=8192 FILE=$bakdir$myfile.dmp ROWS=y COMPRESS=y CONSTRAINTS=y GRANTS=n INDEXES=y LOG=$bakdir$mylogfile
jfy是個DBA許可權的使用者。
根據以上的錯誤情況,在MOS中找到如下符合描述的文章:
Errors EXP-8 ORA-904 During Export (Doc ID 1091927.1)
In this Document
Symptoms |
Cause |
Solution |
Applies to:
Oracle Database – Enterprise Edition – Version 10.2.0.4 and later
Information in this document applies to any platform.
***Checked for relevance on 27-Jun-2013***
Symptoms
You are attempting to perform an export as the SYSTEM user or a DBA. During export, the following errors occurred:
ORA-00904: : invalid identifier
When performing a trace on the export, we see that the ORA-904 error is caused by the following statement:
SELECT
SYNNAM, DBMS_JAVA.LONGNAME(SYNNAM), DBMS_JAVA.LONGNAME(SYNTAB), TABOWN,
TABNODE, PUBLIC$, SYNOWN, SYNOWNID, TABOWNID, SYNOBJNO FROM SYS.EXU9PTS
WHERE SYNOBJNO IN ( SELECT SYNOBJNO FROM SYS.EXU9TYPT WHERE TABOBJNO =
:1 ) ORDER BY SYNTIME
Cause
The PUBLIC privilege has been revoked from the DBMS_JAVA package.
Privileges
to the DBMS_JAVA package are needed for the export to succeed. However,
as there is concern about security issues due to privileges on the
DBMS_JAVA many have revoked the execute privilege to this package to
keep the database secure.
Solution
Explicitly grant EXECUTE on the DBMS_JAVA package to the DBA role:
This will allow members of the DBA role to have the rights to
perform the export while keeping the DBMS_JAVA package out of the PUBLIC
role.
按照文章的提示,執行grant execute on DBMS_JAVA to dba;語句之後exp操作恢復正常。
出現這個問題的原因是PUBLIC的DBMS_JAVA包許可權被回收,要想執行exp匯出成功需要DBMS_JAVA的execute許可權,然而擔心到安全的問題,回收了DBMS_JAVA包的執行許可權,以保證資料庫的安全。
按照Oracle的解釋,那麼一定是某種不安全的操作觸發了Oracle因為安全的原因回收了PUBLIC的DBMS_JAVA execute許可權,從而導致的該報錯。
–end–
相關文章
- exp匯出出現:ORA-00904: : invalid identifierIDE
- exp匯出出現:ORA-00904: "POLTYP": invalid identifierIDE
- Oracle8i匯出出現EXP-8錯誤Oracle
- 惡性BUG:unity MySQL匯出出現1252UnityMySql
- 資料泵匯出出現ORA-4030錯誤
- 資料泵匯出出現ORA-31617錯誤
- 資料泵匯出出現ORA-31623錯誤
- 【EXP/IMP】使用EXP /IMP工具“模糊”匯出和匯入
- 資料匯入匯出EXP/IMP
- exp/imp匯出匯入資料
- Oracle匯入(imp )與匯出(exp )Oracle
- 【ORACLE 匯入匯出】exp 錯誤Oracle
- ORACLE匯入匯出命令exp/impOracle
- 使用Oracle 的 imp ,exp 命令實現資料的匯入匯出Oracle
- oracle資料匯出匯入(exp/imp)Oracle
- Oracle 遠端匯出匯入 imp/expOracle
- 【匯入匯出】EXP-00068分析
- exp/imp匯出匯入工具的使用
- Oracle exp/imp匯出匯入工具的使用Oracle
- Oracle資料匯入匯出imp/exp命令Oracle
- oracle資料的匯入匯出imp/expOracle
- Exp匯出報錯EXP-00091分析解決
- exp 分檔案大小匯出
- Oracle資料匯入匯出imp/exp命令(轉)Oracle
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- EXP COMPRESS以及EXP/IMP EXPDP/IMPDP匯入表結構注意
- 【EXP】使用EXP的QUERY選項匯出表中部分資料
- exp/imp之@遠端匯出操作
- linux下exp自動匯出Linux
- imp exp 跨系統匯入案例
- Oracle exp只匯出部分資料Oracle
- exp匯出操作結果判斷
- shell,ant指令碼實現自動資料泵(exp.expdp)匯出匯入資料指令碼
- exp匯出報錯EXP-00106問題處理
- 特殊符號密碼處理 - 匯入匯出exp/imp符號密碼
- 在LINUX下用EXP匯出資料時出現EXP-00091錯誤的解決方法Linux
- EXP 邊匯出邊壓縮打包(原)
- exp 匯出 全庫,全使用者