sql-server-2008 - 多语句表值函数问题
问题描述
我对多语句表值函数有疑问。这段代码有什么问题
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_New2CFS]
是Oracle链接服务器。[BFS_CFS_BALANCE_VIW]
是 Oracle 数据库中的一个视图。
消息 444,级别 16,状态 2,过程 FN_BFS_CFS_BALANCE_VIW,第 37 行 [批处理开始第 5 行]
在函数中无效使用副作用运算符“执行字符串”。消息 443,级别 16,状态 14,过程 FN_BFS_CFS_BALANCE_VIW,第 33 行 [批处理开始第 5 行]
函数中包含的选择语句无法将数据返回到客户端。
谢谢你
解决方案
推荐阅读
- python - 您应该在 API 方法内部还是外部获取锁?
- android - 触摸 EditText 后 ListView 跳出屏幕
- razor - Html.TextBoxFor 助手不将数据绑定到模型
- android - 电话和 PhoneStateListener
- javascript - 如果对象数组中不存在值,则推零
- python - 更改 df 列格式
- git - 根据我的分支的提示列出所有比我的暂存分支更新的新提交(来自所有分支,包括获取的远程分支)?
- three.js - three.js 中几何类型的变化
- python - Python矩阵乘法3d数组
- applescript - 使用 Applescript 右键单击应用程序文件