java - java程序在比较2个文件时找出错误的列
问题描述
我尝试插入
INSERT INTO T1 (column1, column2, column3, column4) VALUES (value1, value2, value3);
上述插入语句以 txt 文件的脚本形式存在。
其中“column4”不是表中存在的列。我已经针对列编译了 xls 文件列表
xls file
T1 ---- column1
T1 ---- column2
T1 ---- column3
T2 ---- column1
T2 ---- column2
T2 ---- column3
T2 ---- column4
在比较具有脚本和 xls 文件列表的 txt 文件时,它必须记下 column4 作为额外的列。
有人可以帮我弄这个吗 ?谢谢
解决方案
从查询 sintax 来看,我猜您正试图从 JAVA 程序将数据插入 Oracle 数据库。
您可以做的是使用 try 和 catch 编写代码。
try{
String query = "INSERT INTO TABLE_NAME (column1, column2, column3, column4) VALUES (value1, value2, value3);"
Statement stm = connection.createStatement();
stm.execute(query);
}
catch(SQLException ex){
System.out.println(ex.getErrorCode());
System.out.println(ex.getErrorMessage());
}
我相信通过分析 ex.getErrorMessage 中的字符串,您将能够得出错误识别哪一列的结论。它看起来像这样: ORA-00904: "column4": invalid identifier
通过使用子字符串函数和类似函数,您可以看到问题出在哪里 有关 SQL 异常的更多信息:https ://docs.oracle.com/javase/8/docs/api/index.html?java/sql/SQLException.html
推荐阅读
- cmake - Google Benchmark:“以调试模式构建的库”
- c# - 捏和缩放WIN2D
- css - Bootstrap4:屏幕右侧的额外空白
- teradata - 在 MultiLoad 和 FastExport 中禁用日志 - Teradata
- angular - 角formarray推送formcontrol
- ruby-on-rails - 模型函数中的 Model.all 或 Self.all 获取所有记录?
- c# - 带有 application/x-www-form-urlencoded HTTP POST 的 ASP.NET Web api 映射模型
- java - Java Nashorn 的替代品
- docker - Kubernetes:weave 在其中一个工作节点上选择了公共 IP
- android - 有没有办法使用 declare-styleable 打开选择资源对话框,让您在 Android Studio 中选择颜色或可绘制对象?