我在使用其中一个表的列名时遇到问题。
我的DB2版本是DB2 / LINUXX8664 11.1.0。我在CentOS Linux版本7.2.1511上运行它。我的IBM Data Studio版本是4.1.2。
该列在“COMPRAS”模式的“PERIODO”表中命名为“NRO_AÑO”。
当我执行简单查询
时SELECT NRO_AÑO
FROM COMPRAS.PERIODO
它会产生以下错误:
"NRO_AÑO" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=3.68.61
如果我执行查询
SELECT *
FROM COMPRAS.PERIODO
它产生的数据包含以下列
我猜它与涉及的字符集有关,但我不知道在哪里看。
提前致谢。
答案 0 :(得分:0)
它对我有用:
[db2inst1@server ~]$ db2 "create table compras.periodo (nro_año int)"
DB20000I The SQL command completed successfully.
[db2inst1@server ~]$ db2 "insert into compras.periodo values (1)"
DB20000I The SQL command completed successfully.
[db2inst1@server ~]$ db2 "insert into compras.periodo (nro_año) values (2)"
DB20000I The SQL command completed successfully.
[db2inst1@server ~]$ db2 "select nro_año from compras.periodo"
NRO_AÑO
-----------
1
2
2 record(s) selected.
您可能遇到控制台编码问题(putty),您应该查看数据库中列的名称是如何存储的:
db2 "select colname from syscat.columns where tabname = 'PERIODO'"
COLNAME
--------------------------------------------------------------------------------------------------------------------------------
NRO_AÑO
1 record(s) selected.
从Putty(SSH客户端)创建表,然后从Data Studio中选择,然后高于128的字符将具有不同的表示。 Java(DataStudio)使用UTF-8,但是用于创建表的脚本可能使用了另一种编码,这在数据库中存在问题(Putty,Windows,Notepad等)。
答案 1 :(得分:0)
当我从DB2 9.7上的DB2命令行处理器运行脚本时,它对我有用。
db2 => CREATE TABLE TEMP_TABLE(NRO_AÑO INTEGER)
DB20000I The SQL command completed successfully.
db2 => INSERT INTO TEMP_TABLE(NRO_AÑO) VALUES(1)
DB20000I The SQL command completed successfully.
db2 => SELECT * FROM TEMP_TABLE
NRO_AÑO
-----------
1
1 record(s) selected.
db2 => select colname from syscat.columns where tabname = 'TEMP_TABLE'
COLNAME
------------
NRO_AÑO
1 record(s) selected.
答案 2 :(得分:0)
您的问题也可能是列需要用引号括起来,如IBM Data Studio Ver 4中所示,例如:
INSERT INTO DB2ADMIN.FB_WEB_POSTS(“UserName”,“FaceID”,“FaceURL”,“FaceStory”,“FaceMessage”,“FaceDate”,“FaceStamp”)
VALUES('SocialMate','233555900032117_912837012103999','http://localhost/doculogs.nsf/index.html','某些消息或故事','Lotus Notes,Google,Oracle App samples的随机文件项目','2017-09-09' ,'2017-09.23');