我在下面有一个ibm informix存储过程。我可以通过调用松鼠来获得此程序的结果。这是问题所在,结果可能是巨大的,可以包含不必要的超过20列和100行。 因此,我需要使用输入参数(在过程中调用地址参数)而不是下面的第一个NULL参数,它必须包含特定结果的“052%”通配符。当我尝试使用通配符时,它确实返回空结果。
使用空值调用
CALL sp_ccdr('2012-08-07 00:00:00.000',
'2012-08-08 00:00:00.000',
'0', NULL, NULL,NULL, NULL, NULL, NULL,
NULL, '0','0',NULL,NULL,'f')
使用通配符
进行调用CALL sp_ccdr('2012-08-07 00:00:00.000',
'2012-08-08 00:00:00.000',
'0', "052%", NULL,NULL, NULL, NULL, NULL,
NULL, '0','0',NULL,NULL,'f')
如何从结果集中选择一些列?
select col1 from (CALL sp_ccdr('2012-08-07 00:00:00.000',
'2012-08-08 00:00:00.000',
'0', "052%", NULL,NULL, NULL, NULL, NULL,
NULL, '0','0',NULL,NULL,'f'))
它不起作用。我收到语法错误。
答案 0 :(得分:0)
通常,Informix不支持CALL。某些API可能会将CALL转换为EXECUTE PROCEDURE,但这不是您在上一个示例中需要执行的操作。
SELECT col1
FROM TABLE(MULTISET(sp_ccdr('2012-08-07 00:00:00.000', '2012-08-08 00:00:00.000',
'0', "052%", NULL, NULL, NULL, NULL, NULL,
NULL, '0', '0', NULL, NULL, 'f')));
这至少有机会工作;我没有通过DBMS运行语法,因此可能存在错误。