Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 创建表并立即输出结果[db2-400]_.net_Db2 400 - Fatal编程技术网

.net 创建表并立即输出结果[db2-400]

.net 创建表并立即输出结果[db2-400],.net,db2-400,.net,Db2 400,首先,我想说的是,我处在一个非常沉重的黑盒环境中。as400上有一个存储过程,可在以后运行此查询。还有一个过程需要创建一个表,然后返回输出。我无法控制这一切的运作方式 我只能做一件事,将查询传递给创建表的存储过程,然后对其进行选择 我正在尝试创建一个包含数据的表,并立即在all in 1语句中输出结果 这与客户端工具和我使用.net应用程序发送命令时出现的错误相同 我遇到了一个路障,它告诉我消息:[SQL0104]令牌;无效。有效令牌:。 查询将如下所示: CREATE table newTa

首先,我想说的是,我处在一个非常沉重的黑盒环境中。as400上有一个存储过程,可在以后运行此查询。还有一个过程需要创建一个表,然后返回输出。我无法控制这一切的运作方式

我只能做一件事,将查询传递给创建表的存储过程,然后对其进行选择

我正在尝试创建一个包含数据的表,并立即在all in 1语句中输出结果

这与客户端工具和我使用.net应用程序发送命令时出现的错误相同

我遇到了一个路障,它告诉我
消息:[SQL0104]令牌;无效。有效令牌:。

查询将如下所示:

 CREATE table newTable as (select * from table1 join table2 on table1.id = table2.foreignId) with data;
 SELECT * from newTable;
现在我知道问题不是令牌无效,因为我可以将它用于其他语句。我将假设这是因为我不能在同一批中创建和选择

我还尝试将其包装到BEGIN END语句中,并将
消息:[SQL0029]放入嵌入语句中缺少的子句中。

我现在不知道如何在声明中做到这一切。我有一个完全不同的问题,在发送多个语句时,我不能保证这些语句的触发顺序。这是我无法改变的

除了创建表之外,我没有对数据库进行任何修改的选项。这是一个我们仍在使用的遗留系统,唯一的目的是创建报告。这个过程必须通过创建一个表并返回结果来完成

增加一些清晰度。我个人不需要结果


我要做的是生成一个动态查询。然后我接受这个查询,并将其加载到一个特殊的表中。然后我调用一个存储过程。这个存储过程然后从这个特殊的表中读取数据,执行我给它的查询。然后,它会接收收到的结果并发送一封电子邮件。

我怀疑您正在使这种方式变得比需要的更复杂。基于下面的一些附加信息,我假设您可以将其作为两个单独的查询运行,但您需要删除对第二个查询的依赖关系。将此作为第一个选项:

select * from table1 join table2 on table1.id = table2.foreignId
并将其用作第二个:

CREATE table newTable as (
        select * 
        from table1 
        join table2 on table1.id = table2.foreignId)
    with data

添加更多细节。您可以使用过程并调用它。NonQueryResult不会创建结果集,但批处理需要一个结果集。标记正确的Db2服务器平台(i-series/as400、Db2-for-Z/os或Db2 for Linux/Unix/Windows)。编辑您的问题以显示目标Db2版本和平台,以及您使用的Db2驱动程序供应商(microsoft、ibm、datadirect等)和版本。@data\u henrik procs不是一个选项,我除了创建table@mao我会试试看我能得到更多的信息。忽略它的非执行部分,我只是使用了错误的术语。我只是说一个查询和两个命令将进入数据库..这与.NET有什么关系?实际代码是什么?如果查询正确,并且表不存在,
DbCommand.ExecuteReader
将起作用。但是,该错误反映了SQL查询
我只是说一个查询,两个命令进入数据库。
这不是“简单”。这种语法允许吗?您是否尝试过使用客户端工具执行该语句以检查其有效性?我无法控制这一点,存储的proc需要一个表,然后它还需要结果该表用于保存报告,并且select在proc使用的某些电子邮件过程中使用。这里一定有您没有解释的内容。正如你所说的那样,这个问题无法解决。听起来,此报告过程适用于其他报告。有什么原因你不能复制他们的做法吗?我现在做的是新的。我的公司正试图利用一个旧的存储过程来做一些新的事情。proci调用存储传入的查询,并一次运行一个查询。我的问题是我不能保证订单,我需要先创建表,然后才能选择它。如果我只是传入一个表,它将创建它,而不会发送电子邮件。如果我创建一个select,它将发送一封电子邮件,但不会创建一个表。如果我执行一个create,然后执行一个select as 2查询,我会遇到一个问题,即选择一个不存在的表,因为无法保证顺序。您仍然没有解释为什么需要创建一个表。我假设您需要它用于其他流程,因为您没有说明在电子邮件流程中需要它的任何原因。