Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OracleCreateTableParser解析oracle建表语句获取不到注释 #5833

Closed
bubb1eP opened this issue Apr 9, 2024 · 9 comments
Closed

OracleCreateTableParser解析oracle建表语句获取不到注释 #5833

bubb1eP opened this issue Apr 9, 2024 · 9 comments

Comments

@bubb1eP
Copy link

bubb1eP commented Apr 9, 2024

image sql语句 image 代码示例 image 解析结果 解析结果没有获取到注释
@bubb1eP
Copy link
Author

bubb1eP commented Apr 9, 2024

druid版本是1.2.5

@bubb1eP bubb1eP changed the title OracleCreateTableParser解析oracle建表语句获取 OracleCreateTableParser解析oracle建表语句获取不到注释 Apr 9, 2024
@lizongbo
Copy link
Collaborator

用1.2.22验证,如果还是复现,请发纯文本的信息,和能重现问题的测试代码,图片根本不方便制造测试用例。

@bubb1eP
Copy link
Author

bubb1eP commented Apr 22, 2024

用1.2.22验证,如果还是复现,请发纯文本的信息,和能重现问题的测试代码,图片根本不方便制造测试用例。

   String sql="create table APP_USER (     USERID         VARCHAR2(16)            not null         primary key,     UPDATEDATE     DATE          default null,     FIRSTLOGIN     VARCHAR2(2)   default '0' ) comment on table APP_USER is '用戶表(內勤)' comment on column APP_USER.USERID is '用户ID' comment on column APP_USER.UPDATEDATE is '更新时间' comment on column APP_USER.FIRSTLOGIN is '首次登录"; OracleCreateTableParser parser = new OracleCreateTableParser(sql); SQLCreateTableStatement sqlCreateTableStatement = parser.parseCreateTable(); String tableName = sqlCreateTableStatement.getTableName(); System.out.println(tableName); for (SQLTableElement sqlTableElement : sqlCreateTableStatement.getTableElementList()) { if (sqlTableElement instanceof SQLPrimaryKey) { SQLPrimaryKey sqlPrimaryKey = (SQLPrimaryKey) sqlTableElement; }else if (sqlTableElement instanceof SQLColumnDefinition){ SQLColumnDefinition sqlColumnDefinition = (SQLColumnDefinition) sqlTableElement; System.out.println("字段名:"+sqlColumnDefinition.getNameAsString()+" 注释:"+sqlColumnDefinition.getComment()); } }

如上述oracle的sql语句,解析的时候是拿不到注释的也不能识别主键字段

@lizongbo
Copy link
Collaborator

lizongbo commented May 3, 2024

确认这个sql是合法语句?
https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html
看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

@bubb1eP
Copy link
Author

bubb1eP commented May 7, 2024

确认这个sql是合法语句? https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html 看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

oracle语法就是注释分开的mysql是在一起的

@bubb1eP
Copy link
Author

bubb1eP commented May 7, 2024

确认这个sql是合法语句? https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html 看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

而且你发的这个链接注释也是分开的呀

@lizongbo
Copy link
Collaborator

lizongbo commented May 7, 2024

确认这个sql是合法语句? https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html 看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

而且你发的这个链接注释也是分开的呀

仔细看人家的是分号分开的多条sql语句,你的是一条,你自己先在oracle数据验证清楚sql的合法性再来反馈问题。

@lizongbo lizongbo closed this as completed May 7, 2024
@bubb1eP
Copy link
Author

bubb1eP commented May 9, 2024

确认这个sql是合法语句? https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html 看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

而且你发的这个链接注释也是分开的呀

仔细看人家的是分号分开的多条sql语句,你的是一条,你自己先在oracle数据验证清楚sql的合法性再来反馈问题。

验证过了亲,不行,我一开始是直接复制的ddl建完表后的语句,而且不合法的话,sql解析就出错了喔,我这个是复制的示例试了一下,你不信可以自己测试一下喔,是无法获取注释的。

@bubb1eP
Copy link
Author

bubb1eP commented May 9, 2024

确认这个sql是合法语句? https://deepinout.com/oracle/oracle-questions/319_oracle_oracle_create_table_with_column_comments.html 看网上的最多是表注释跟着建表语句一起写成一个sql,没见到把字段注释合并成一个sql来写的。

而且你发的这个链接注释也是分开的呀

仔细看人家的是分号分开的多条sql语句,你的是一条,你自己先在oracle数据验证清楚sql的合法性再来反馈问题。

你都懒得自己试一下就关闭issues,确实是存在这个bug !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants