如何确定SQL查询表达式的数据类型

时间:2015-09-24 19:13:00

标签: sql db2

我需要将查询输出传递给我的Datastage Job,它将进一步处理它。问题是我在SQL查询中使用了类型转换和计算,而DataStage需要知道输入列的确切数据类型。

更简单的方法是猜测列类型,例如:将它CAST到INT 但有时它的INT64然后我必须改变它,所以我正在寻找可靠的东西,这将节省我的时间。

更像是Resultset的元数据。

1 个答案:

答案 0 :(得分:1)

这取决于您执行查询的方式。

在DB2命令行处理器中,您可以使用command DESCRIBE SELECT <the rest of your query>打印结果集列的列表及其数据类型。

在批处理脚本中,您可以解析 queryParseUser.findInBackground(new FindCallback<ParseUser>() { 09-25 01:06:31.092 8413-8413/com.example.nan.spymap E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.example.nan.spymap, PID: 8413 java.lang.NullPointerException: Attempt to invoke virtual method 'double com.parse.ParseGeoPoint.getLatitude()' on a null object reference at com.example.nan.spymap.MapActivity$1.done(MapActivity.java:126) at com.example.nan.spymap.MapActivity$1.done(MapActivity.java:113) at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:115) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 的输出。

在CLI或嵌入式SQL应用程序中,您可以使用相应的DESCRIBE OUTPUT statement将结果集元数据检索到SQLDA结构中。

这假设DB2 for LUW,但DB2 for z / OS和IBM i(AS / 400)也支持DESCRIBE语句。