注册

在where条件中调用自定义函数卡死问题,求指点

龙卷风 2023/09/22 624 0

【DM版本】:V8
【操作系统】:windows 10
【CPU】: i7-11700
【问题描述】*:
编写了一个类似SQL Server中的OBJECT_ID函数,如下:
CREATE OR REPLACE FUNCTION OBJECT_ID(ObjectName IN VARCHAR) RETURN number
AS
BEGIN
RETURN (select top 1 object_id from user_objects where object_name =ObjectName);
END;

1、用**select object_id('TE_WZ_JH_CLZLJH');**可以正常使用查出结果,见下图。
image.png

2、把此函数放到where条件中使用会卡死,一直查不出结果,见下图
image.png

3、经测试与自定义函数中的【select top 1 object_id from user_objects where object_name =ObjectName】这句有关系。
比如在函数中去掉这行,直接return一个常量就没有问题。
在自定义函数中定义一个变量,把select结果into到变量中,return变量,存在同样问题。

这个自定义函数应该怎么写?求指点

回答 0
暂无回答
扫一扫
联系客服