小编Chr*_*mus的帖子

如何将DB2 SQL结果表移动到物理文件中?

我想从SELECT语句中获取结果表,然后将其移动到物理文件中.

我希望使用(每个W3Schools):

SELECT column_name(s)
INTO new_table_name [IN externaldatabase]
FROM old_tablename 
Run Code Online (Sandbox Code Playgroud)

不幸的是,根据IBM手册(DB2 for i SQL参考)

SELECT INTO语句生成一个最多包含一行的结果表,并将该行中的值分配给变量.

那么我想也许我可以使用:

INSERT语句将行插入一个表或视图存在三种形式的该语句的:
1. INSERT使用全查询表用于插入一个或多个行到表或视图使用来自其他表或视图的值.

不幸的是,它似乎对我不起作用.

INSERT INTO <tablename>
FROM ( SELECT (*) FROM <querytableA>
       UNION
       SELECT (*) FROM <querytableB>)
Run Code Online (Sandbox Code Playgroud)

我能够将结果表移动到物理文件中,但为了做到这一点,我必须声明一个游标然后do … while写入物理文件,一次一个记录.我认为这种丑陋和不雅,并希望能够使用SELECT INTOINSERT INTO声明.

请帮我将结果表"转储"到一个带有一个优雅语句的物理文件中.

操作系统:IBM i v6.1
数据库:DB2

sql db2 rpgle ibm-midrange

4
推荐指数
1
解决办法
9110
查看次数

如何从iseries上的DB2转换SQuirrel中的CCSID 65535

我是SQuirrel SQL的新手.我需要一些帮助才能将CCSID 65535转换为ASCII,UNICODE(或任何人类可读的)

我按照以下指南使用JDBC驱动程序.


根据IBM的网站:

我的程序必须处理哪些字符转换问题?IBM i数据库使用EBCDIC来存储文本.Java使用Unicode.JDBC驱动程序处理字符集之间的所有转换,因此您的程序不必担心它.

但我认为它们指的是CCSID 37而不是65535(Hex).


我从DB2 DB获得了以下信息

做DSPFD给了我:

编码字符集标识符......:CCSID 65535

做DSPFFD给了我:

TXT     CHAR            3       3        41        Both     Text      
Field text  . . . . . . . . . . . . . . . :  Text   Coded Character
Set Identifier  . . . . . :  65535
Run Code Online (Sandbox Code Playgroud)

但是TXT字段的SQuirrel查询结果是:

5c c1 c4 c4 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 …

db2 jdbc squirrel-sql ibm-midrange

1
推荐指数
1
解决办法
6375
查看次数

标签 统计

db2 ×2

ibm-midrange ×2

jdbc ×1

rpgle ×1

sql ×1

squirrel-sql ×1