故障报告

1. 问题(故障)描述

[root@fr-web01 bin]# java -jar DDLParseMain.jar -source_connect mysql:root/123456@192.168.60.41:3306/finedb -target_connect oracle:finedb/fr123@192.168.60.103:1521/frdb -synctype table -source_schema finedb -output_file a.sql
ZCBUS_HOME : /zcbus/bin/
log4j:WARN No appenders could be found for logger (com.demo.DDLParseMain).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT CASE VALUE WHEN 'STANDARD' THEN 4000 WHEN 'EXTENDED' THEN 32767 ELSE 4000 END limitbytes FROM GV$PARAMETER WHERE upper(NAME) LIKE 'MAX_STRING_SIZE']; nested exception is java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

    at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:276)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:407)
    at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:458)
    at org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:501)
    at com.zcbus.DataBus.dbDict.OperOracleTableInfo.initOracleBasic(OperOracleTableInfo.java:43)
    at com.zcbus.DataBus.dbDict.OperDbDict.InitDbDict(OperDbDict.java:34)
    at com.zcbus.DataBus.Common.DbCommon.ParseConnect(DbCommon.java:43)
    at com.demo.DDLParseMain.DealDDL(DDLParseMain.java:314)
    at com.demo.DDLParseMain.ParseParameter(DDLParseMain.java:49)
    at com.demo.DDLParseMain.<init>(DDLParseMain.java:38)
    at com.demo.DDLParseMain.main(DDLParseMain.java:42)
Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在

2. 问题(故障)原因

oracle连接用户finedb权限不够,导致GV$PARAMETER视图查询不到

3. 解决

grant select any dictionary to finedb;

4. 参考

文档更新时间: 2021-05-27 21:10   作者:周风磊