Oracle에서 데이터베이스를 마이그레이션했으며 이제는 몇 가지 스칼라 반환 함수가 있습니다.SQL에서 스칼라 값 함수 호출
이열 "DBO"또는 사용자 정의 함수 또는 집계 "dbo.chk_mgr", 또는 이름 중 하나를 찾을 수 없습니다 모호 :
그러나, 내가 그들을 호출 할 때, 내가 말하는 오류가 발생합니다.
나는 이런 식으로 전화 해요 : 내가 잘못 뭐하는 거지
SELECT dbo.chk_mgr('asdf')
?
Oracle에서 데이터베이스를 마이그레이션했으며 이제는 몇 가지 스칼라 반환 함수가 있습니다.SQL에서 스칼라 값 함수 호출
이열 "DBO"또는 사용자 정의 함수 또는 집계 "dbo.chk_mgr", 또는 이름 중 하나를 찾을 수 없습니다 모호 :
그러나, 내가 그들을 호출 할 때, 내가 말하는 오류가 발생합니다.
나는 이런 식으로 전화 해요 : 내가 잘못 뭐하는 거지
SELECT dbo.chk_mgr('asdf')
?
Table-Valued Function
이 아닌가요?
는 이유 물어 :
CREATE FUNCTION dbo.chk_mgr(@mgr VARCHAR(50))
RETURNS @mgr_table TABLE (mgr_name VARCHAR(50))
AS
BEGIN
INSERT @mgr_table (mgr_name) VALUES ('pointy haired boss')
RETURN
END
GO
SELECT dbo.chk_mgr('asdf')
GO
결과 : 그러나
Msg 4121, Level 16, State 1, Line 1
Cannot find either column "dbo" or the user-defined function
or aggregate "dbo.chk_mgr", or the name is ambiguous.
...
SELECT * FROM dbo.chk_mgr('asdf')
mgr_name
------------------
pointy haired boss
구문은 나를 위해 잘 작동합니다 :
CREATE FUNCTION dbo.test_func
(@in varchar(20))
RETURNS INT
AS
BEGIN
RETURN 1
END
GO
SELECT dbo.test_func('blah')
는 함수가 함수로하고 DBO 스키마 아래에 존재하는지 확인 있습니까?
예, 함수 아래의 스칼라 반환 함수 폴더 아래에 있습니다. –
PRINT dbo.[FunctionName] ([Parameter/Argument])
예컨대 :
PRINT dbo.StringSplit('77,54')
인라인 테이블 값 기능을 사용 중입니다. 따라서 Select * From 함수를 사용해야합니다. select function()을 사용하려면 스칼라 함수를 사용해야합니다.
https://msdn.microsoft.com/fr-fr/library/ms186755%28v=sql.120%29.aspx
선택한 올바른 데이터베이스가 있는지 확인합니다. 새 쿼리 창에서 마스터 데이터베이스를 실행하려는 경우 선택한 마스터 데이터베이스가있을 수 있습니다.
해당 함수에 대한'CREATE' 문을 보여줄 수 있습니까? –
또한, 당신이 그것을 부르고 있다고 말할 때, 어떻게/어디에서 부르는거야? 어쩌면 당신은 그것을 깨닫지 않고 틀린 DB를 가리킬 것입니까? –
방금이 문제가있었습니다. @ TomH의 코멘트가 정답이었다. 질문의 대답처럼 Scalar-valued 함수를 사용했기 때문에 최고 득표 수는 제게는 청어였습니다. –