Sql server 2008 多语句表值函数问题
我对多语句表值函数有问题。这个代码怎么了Sql server 2008 多语句表值函数问题,sql-server-2008,dynamic-programming,dynamic-sql,sql-function,Sql Server 2008,Dynamic Programming,Dynamic Sql,Sql Function,我对多语句表值函数有问题。这个代码怎么了 SET ANSI_NULLS ON; GO SET QUOTED_IDENTIFIER ON; GO CREATE FUNCTION FN_BFS_CFS_BALANCE_VIW ( @param1 VARCHAR ) RETURNS @table TABLE ( DAT VARCHAR , COD_ACN_KOL VARCHAR , DES_ACN_KOL VARCHAR , COD_ACN_MOIN VARCHAR
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION FN_BFS_CFS_BALANCE_VIW
(
@param1 VARCHAR
)
RETURNS @table TABLE
(
DAT VARCHAR
, COD_ACN_KOL VARCHAR
, DES_ACN_KOL VARCHAR
, COD_ACN_MOIN VARCHAR
, DES_ACN_MOIN VARCHAR
, COD_ACN_TAFSIL VARCHAR
, DES_ACN_TAFSIL VARCHAR
, COD_FAREI1 VARCHAR
, DES_FAREI1 VARCHAR
, COD_FAREI2 VARCHAR
, DES_FAREI2 VARCHAR
, TYP_FRGN INT
, DES_FRGN VARCHAR
, TYP_DPN INT
, DES_DPN VARCHAR
, FLG_129 INT
, DES_129 VARCHAR
, AMN_DBT INT
, AMN_CRD INT
, COD_MONEY VARCHAR
, DES_MONEY VARCHAR
, AMN_DBT_FRGN INT
, AMN_CRD_FRGN INT
)
AS
BEGIN
EXEC (' call tpout.set_context(''PARAM1'',' + '' + @param1 + '' + ' AT [LS_New2CFS]');
SELECT DAT
, COD_ACN_KOL
, DES_ACN_KOL
, COD_ACN_MOIN
, DES_ACN_MOIN
, COD_ACN_TAFSIL
, DES_ACN_TAFSIL
, COD_FAREI1
, DES_FAREI1
, COD_FAREI2
, DES_FAREI2
, TYP_FRGN
, DES_FRGN
, TYP_DPN
, DES_DPN
, FLG_129
, DES_129
, AMN_DBT
, AMN_CRD
, COD_MONEY
, DES_MONEY
, AMN_DBT_FRGN
, AMN_CRD_FRGN
FROM LS_New2CFS..TPOUT.BFS_CFS_BALANCE_VIW;
RETURN;
END;
当我执行此代码时,会出现此错误
PS:[LS\u New2CFS]
是Oracle链接服务器<代码>[BFS\U CFS\U BALANCE\U VIW]是Oracle数据库中的一个视图
Msg 444,16级,状态2,程序FN_BFS_CFS_BALANCE_VIW,第37行[批次起始行5]在函数中使用副作用运算符“EXECUTE STRING”无效 Msg 443,第16级,第14状态,程序FN_BFS_CFS_BALANCE_VIW,第33行【批次起始行5】
函数中包含的Select语句无法向客户端返回数据
多亏了您函数无法调用存储过程。此外,要使用多语句TVF,需要将数据插入到函数中声明的表中,然后返回该表。i、 e.
INSERT@table()从dbo.View中选择;返回@Table代码>。顺便说一句,这可能值得一读:顺便说一句:SQLServer2008和2008R2现在已经没有扩展支持了--该升级了!嘿,加雷斯,谢谢你的工作。我试着改变我的习惯。