Oracle 및 저장 프로 시저를 처음 사용합니다. SQL Server 에서처럼 필드 이름이있는 레코드 집합을 extern 프로그램에 반환 할 수 있는지 여부를 알고 싶습니다. 나는 약간의 문서를 읽었지 만 나는 올바른 길을 가고 있는지 확신 할 수 없다. Sys_Refcursor를 사용할 때 한 필드 만 반환 할 수 있고 원하는만큼 많이 반환 할 수는 없습니다.필드 이름이있는 Oracle 저장 프로 시저 반환 레코드 집합
여러 필드 이름을 반환해야 하나의 입력 매개 변수가 있습니다. 프로그램의 문서에서
, 내가 SQL Server에 대한 예를하고 난 내 Oracle 저장 프로 시저에 대해 동일한을 가지고 싶다 : 나는 그렇게 할 수있는 방법을 제안는Use
Go
Set Ansi_Nulls ON
Go
Alter Procedure
@InputLocation Varchar(255)
As
Begin
Set Nocount On;
select FirstName as '@FirstName', Company as '@Company' from dbo.company where Location = @InputLocation
End
이 있습니까? 추가 정보가 필요하시면 알려주세요. 감사.
/편집 :
내 샘플 코드 (작동 있는지 확인하기 위해 단지 출력을 생성하기위한 첫 번째 단계에서 입력 매개 변수를 사용하지 않고) : PL에 사용
create or replace
PROCEDURE TEST_PROZEDUR1 (
Input_Location IN Varchar2,
First_Name OUT SYS_Refcursor,
Company OUT Sys_Refcursor) IS
BEGIN
open First_Name For Select FirstName from dbo.company;
open Company For Select Company from dbo.company;
END TEST_PROZEDUR1;
'sys_refcursor'는 어떤 쿼리의 결과가 될 것입니다. 여기서 한 필드를 의미합니까? http://oracle-base.com/articles/misc/using-ref-cursors-to-return-recordsets.php – Exhausted
예를 들어 필드는 '@Firstname'과 '@Company'입니다 (Oracle에서는 : Firstname, : Company). 호출 프로그래머는 필드가있는 레코드 세트가 필요합니다. 만약 내가 그 중 하나를 반환하면 작동하지만, 둘 다 반환하면, 난 단지 내 코드에서 언급 한 첫 번째 얻을. SQL Developer에서 두 변수를 볼 수 있습니다. 이해할 수 있니? – triplus
Plsql에 샘플 코드를 게시하면 – Exhausted