我正在使用 CentOS 5.6 版(最终版)和 PHP 5.1.6(cli)(构建时间:2012 年 2 月 2 日 18:24:47)。我需要与同一本地网络中的 DB2 数据库服务器连接。db2 版本是 V5R3。我已经安装了 iSeriesAccess 客户端和 unixODBC。
我的 odbc.ini 配置:
[iSeries Access ODBC Driver]
Description = iSeries Access for Linux ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so
NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2 = the following Driver64/Setup64 keywords will provide that support.
Driver64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading = 2
DontDLClose …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个查询来计算服务器端的一些数字,而不是在提取数据之后。我不断收到 SQL0802 错误。我已经尝试了常规Sum,以及Double和float命令。我认为回报是漫长的。我正在使用 SQL Squirrel,所以我删除了小数位限制,看看是否可以解决问题。是"Gross Margin"计算将其抛弃。其余的计算工作正常。我很感激我能得到的任何帮助。这只是代码的一部分。为了空间起见,我省略了Where,Group By和Order By部分:
Select Distinct DB1.Tb1.STORE,
DB1.Tb2.DATE_ID,
Sum (DB1.Tb1.CUR_CASH_SALES+DB1.Tb1.CUR_CHARGE_SALES) As "Total Sales",
Sum (DB1.Tb1.CUR_CASH_COST+DB1.Tb1.CUR_CHARGE_COST) As "Total Cost",
Sum ((DB1.Tb1.CUR_CASH_SALES+DB1.Tb1.CUR_CHARGE_SALES)-DB1.Tb1.CUR_CASH_COST+DB1.Tb1.CUR_CHARGE_COST)) As "Gross Profit",
Sum (((DB1.Tb1.CUR_CASH_SALES+DB1.Tb1.CUR_CHARGE_SALES)-(DB1.Tb1.CUR_CASH_COST+DB1.Tb1.CUR_CHARGE_COST))/(DB1.Tb1.CUR_CASH_SALES+DB1.Tb1.CUR_CHARGE_SALES)))As "Gross Margin"
Run Code Online (Sandbox Code Playgroud) 我SELECT在 AS400/DB2 数据库上运行查询时遇到了一些麻烦。
当我运行以下代码时,我得到一个Exception状态,即游标无效。
String jdbcURL = "jdbc:as400://10.1.2.200";
DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Properties props = new Properties();
props.setProperty("user", "tracktool");
props.setProperty("password", "tooltrack1");
con = DriverManager.getConnection(jdbcURL, props);
stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
int count = 0;
try {
String sql = "select * from MVXJDTALR.CSYNBR where CNNBTY='ZZ'";
assertTrue("Select lieferte kein ResultSet.", stmt.execute(sql));
assertTrue("Keine Results im Resultset", stmt.getResultSet().first());
count = stmt.getResultSet().getInt("CNNBNR");
assertTrue("ResultSet hatte falsche Anzahl Spalten", count > 0);
} catch (Exception ex) {
ex.printStackTrace();
fail("Konnte den aktuellen Stand von CSYNBR nicht …Run Code Online (Sandbox Code Playgroud) 我有一个简单的表格,数据如下:
col_1
==========
haddock
cod
hake
mackerel
tench
sprat
dace
rudd
pike
gudgeon
....
Run Code Online (Sandbox Code Playgroud)
我想选择数据,以便我可以输出5列:
col_1 col_2 col_3 col_4 col_5
======== ======== ======== ======== ========
haddock cod hake mackerel tench
sprat dace rudd pike gudgeon
...
Run Code Online (Sandbox Code Playgroud)
有一个很好的方法来做到这一点?NB iSeries DB2 SQL
我想如何从DB2-DB获取表的列名.
我的意思不是:
SELECT * FROM TABLE A;
Run Code Online (Sandbox Code Playgroud)
我会得到的地方:
| ColumnA | ColumnB |
------------------------
ValueA 1 ValueB 1
ValueA 2 ValueB 2
ValueA 3 ValueB 3
Run Code Online (Sandbox Code Playgroud)
但更像是:
SELECT column_name FROM TABLE A;
Run Code Online (Sandbox Code Playgroud)
得到:
ColumnA, ColumnB
Run Code Online (Sandbox Code Playgroud) 什么是默认作业优先级,如果我提交作业而不给予JOB任何优先权.
我试图通过下面的命令提交JOB
SBMJOB CMD(JAVA CLASS(test.jar)PARM(true)OUTPUT(*NONE))JOB(MYTESTJOBNAME)
这项工作的优先考虑是什么.任何帮助赞赏.
谢谢
我想创建一个CL,显示库中所有物理文件的最新版本名称.使用库名作为输入参数,如何显示所有物理文件的名称?一旦我得到名字,我可以继续版本,但我坚持这个.请建议.
提前致谢 :)
由于某种原因(我无法控制),日期将作为整数存储在我需要查询的iSeries AS400 DB2系统中.例如今天将存储为:
20,171,221
Run Code Online (Sandbox Code Playgroud)
在英国,我需要它在日期格式中如下所示:
21/12/2017
Run Code Online (Sandbox Code Playgroud)
这是我的查询:(OAORDT =日期字段)
Select
Date(SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4)) AS "Order Date"
from some.table
Run Code Online (Sandbox Code Playgroud)
但是,我得到的只是Nulls.如果我删除Date函数,那么它确实有效但它现在是一个我不想要的字符串:
Select
SUBSTR( CHAR( OAORDT ),7,2) ||'/' || SUBSTR(CHAR ( OAORDT ),5,2) || '/' || SUBSTR(CHAR (OAORDT ),1,4) AS "Order Date"
from some.table
Run Code Online (Sandbox Code Playgroud)
如何将OAORDT字段转换为日期?
只是为了更新 - 我将使用OpenQuery从MS SQL Server查询它
谢谢.
我想从另一个文件(FILE1)访问具有"最高日期"键的文件(FILE2).
我的程序没有使用SQL,我不想更改File-Typ,
如何从FILE2获取最高日期以在FILE1上建立链?
我的代码看起来像lide:
KYFILE2.NUMBER = FILE1.NUMBER;
KYFILE2.DATE = HIGHEST VALUE (FILE1.DATE);
KYFILE2.TIME = HIGHEST VALUE (FILE1.TIME);
EXSR CHAIN TO FILE2;
Run Code Online (Sandbox Code Playgroud) 我正在测试一个将参数从CL传递到SQLRPGLE的新程序
我声明了总共16个变量并使用CHGVAR来设置值以测试参数的传递.
PGM
DCL VAR(&COMPFR) TYPE(*CHAR) LEN(3)
DCL VAR(&COMPTO) TYPE(*CHAR) LEN(3)
DCL VAR(&LOCFR) TYPE(*CHAR) LEN(4)
DCL VAR(&LOCTO) TYPE(*CHAR) LEN(4)
DCL VAR(&CLSTFR) TYPE(*CHAR) LEN(1)
DCL VAR(&CLSTTO) TYPE(*CHAR) LEN(1)
DCL VAR(&CUSTFR) TYPE(*CHAR) LEN(7)
DCL VAR(&CUSTTO) TYPE(*CHAR) LEN(7)
DCL VAR(&ITEMFR) TYPE(*CHAR) LEN(20)
DCL VAR(&ITEMTO) TYPE(*CHAR) LEN(20)
DCL VAR(&CLDTFR) TYPE(*CHAR) LEN(8)
DCL VAR(&CLDTTO) TYPE(*CHAR) LEN(8)
DCL VAR(&SCDTFR) TYPE(*CHAR) LEN(8)
DCL VAR(&SCDTTO) TYPE(*CHAR) LEN(8)
DCL VAR(&CMDTFR) TYPE(*CHAR) LEN(8)
DCL VAR(&CMDTTO) TYPE(*CHAR) LEN(8)
CHGVAR VAR(&COMPFR) VALUE('2')
CHGVAR VAR(&COMPTO) VALUE('2')
CHGVAR VAR(&LOCFR) VALUE('6')
CHGVAR VAR(&LOCTO) VALUE('6')
CHGVAR …Run Code Online (Sandbox Code Playgroud)