Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在带有点的DB2文件上运行SQL查询&引用;以他的名义?_Db2_Ibm Midrange - Fatal编程技术网

在带有点的DB2文件上运行SQL查询&引用;以他的名义?

在带有点的DB2文件上运行SQL查询&引用;以他的名义?,db2,ibm-midrange,Db2,Ibm Midrange,我有一个名为“my.test”的DB2文件。DB2文件名包含一个点。 如果我尝试通过strsql运行以下查询: select * from my.test 我收到以下错误: Token . was not valid. Valid tokens: FOR USE SKIP WAIT WITH FETCH ORDER UNION EXCEPT OPTIMIZE. 有办法解决这个问题吗?我试着用引号括起来,但没有用。双引号是转义文件名的正确方法文件名在引号中变为区分大小写,必须在大写中指定 SE

我有一个名为“my.test”的DB2文件。DB2文件名包含一个点。

如果我尝试通过strsql运行以下查询:

select * from my.test
我收到以下错误:

Token . was not valid. Valid tokens: FOR USE SKIP WAIT WITH FETCH ORDER UNION EXCEPT OPTIMIZE.

有办法解决这个问题吗?我试着用引号括起来,但没有用。

双引号是转义文件名的正确方法文件名在引号中变为区分大小写,必须在大写中指定

SELECT * FROM "MY.TEST"

请注意,在IFS命名约定中,“.”运算符用于引用文件中的成员,但不适用于SQL

如果需要使用名为“TEST”的成员访问名为“MY”的文件,则需要创建一个别名以进行查询

CREATE ALIAS QTEMP/MYTEST FOR MY (TEST)
SELECT * FROM QTEMP/MYTEST

这是什么系统;这是否可能是系统/SQL命名问题?如果将
'.
替换为
'/'
,会发生什么情况?它是IBM i。如果我运行他的查询“select*from my/test”我得到一个错误“test in my type*FILE not found”…我突然想到你可能是说你的文件名中有一个
,对吗?是否尝试用单引号(撇号-
)括起文件名?如果您就是这么做的,我不建议在表/库/等名称中加句点,原因很明显。@X-Zero是的。文件名中包含一个“.”。我试试撇号。我也不推荐!不幸的是,我继承了这些。我认为它们是遗留的file.sTried
从“my.file”
中选择*并在*LIBL type*文件中找到一个
“my.file”。
即使库在我的LIBL中。还尝试了使用单引号从“my.file”中选择“
select*”
,但得到的
标记“my.file”无效。有效令牌:(新建FINALTABLE UNNEST横向XMLTABLE。
谢谢JamesA,但它不是名为“MY”的文件,成员名为“TEST”。它的实际文件名为“MY.TEST”。我相信这些是System 36中的旧文件。不过,我要看看是否可以为其制作一个别名。@sloopjohnB我将成员信息作为附加信息包括在内,以防应用。您需要在双引号内以大写形式指定文件名,以解决当前问题。