如题: 测试代码: public void testSetSchema(){ DB2StatementParser parser = new DB2StatementParser( "alter table T_ORG alter column ORG_NAME set not null"); List statementList = parser.parseStatementList(); System.out.println(statementList.get(0).toString()); } 错误信息: com.alibaba.druid.sql.parser.ParserException: TODO pos 47, line 1, column 44, token NOT at com.alibaba.druid.sql.parser.SQLStatementParser.parseAlter(SQLStatementParser.java:1233) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:191) at com.alibaba.druid.sql.parser.SQLStatementParser.parseStatementList(SQLStatementParser.java:72) at com.alibaba.druid.SqlParserTest.testSetSchema(SqlParserTest.java:47) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at junit.framework.TestCase.runTest(TestCase.java:176) at junit.framework.TestCase.runBare(TestCase.java:141) at junit.framework.TestResult$1.protect(TestResult.java:122) at junit.framework.TestResult.runProtected(TestResult.java:142) at junit.framework.TestResult.run(TestResult.java:125) at junit.framework.TestCase.run(TestCase.java:129) at junit.framework.TestSuite.runTest(TestSuite.java:252) at junit.framework.TestSuite.run(TestSuite.java:247) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
原提问者GitHub用户xuanang
在DB2数据库中,您可以使用ALTER TABLE语句来修改表的结构。如果您要修改表中的列定义,可以使用以下语法:
sql
Copy
ALTER TABLE table_name ALTER COLUMN column_name { SET DATA TYPE data_type | SET NOT NULL | DROP NOT NULL | SET DEFAULT default_value | DROP DEFAULT }
其中,table_name是要修改的表的名称,column_name是要修改的列的名称,data_type是要设置的新数据类型,default_value是要设置的新默认值。
如果您要将DB2表中的列定义更改为不允许为空,可以使用以下语法:
sql
Copy
ALTER TABLE T_ORG ALTER COLUMN ORG_NAME SET NOT NULL;
如果您要将DB2表中的列定义更改为允许为空,可以使用以下语法:
sql
Copy
ALTER TABLE T_ORG ALTER COLUMN ORG_NAME DROP NOT NULL;
问题已修复,请用新版本 https://github.com/alibaba/druid/releases/tag/1.1.14
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。