故障报告
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 作者:周风磊