먼저 오라클의 절차는 아무것도 반환하지 않으며 반환 할 수 없습니다. 함수는 무언가를 반환합니다. 프로 시저에는 out
매개 변수가있을 수 있습니다.
둘째, 12.1을 사용하지 않는 한 SQL Server에서와 같이 select
문을 실행하여 암시 적으로 커서를 암시 적으로 반환 할 수 없습니다. 오라클은 이런 종류의 관점을 사용하는 것이 훨씬 더 일반적입니다.
세 번째로 Oracle에서는 empty string is NULL이므로 NULL이 아닌 빈 문자열이 반환 될 것으로 예상하는 코드가 있으면이를 변경해야합니다.
잠재적으로,이 같은 당신이 당신의 프로 시저를 호출하는 데 사용하는 코드에 따라 가장 가까운 해당 코드
CREATE OR REPLACE PROCEDURE lc_unbookTrade(
p_exeid IN VARCHAR2,
p_rc OUT SYS_REFCURSOR)
AS
BEGIN
OPEN p_rc
FOR SELECT null
FROM dual;
END;
것,하지만이 투명 변화하지 않을 수 있습니다.
이 복잡한 문제는 고맙지 만 절차를 호출하고 null 값 즉 EXEC lc_unbookTrade (p_exeid)를 반환 할 수 있기를 바랍니다. – user3706392
@ user3706392 - 저스틴 (Justin 's)은 절차에서 아무 것도 반환 할 수 없다고했습니다. SQL Server 프로 시저를 호출하는 데 현재 사용하고있는 코드를 질문에 추가하면 투명한 Oracle 버전이 있는지 여부를 나타냅니다. 그렇지 않으면 당신은 불가능한 것을 요구하고 있습니다. –
절차는 위와 동일하지만 내가 원하는 것은 Execute lc_unbookTrade (exeid)를 실행할 때입니다. 결과는 빈 문자열 – user3706392