더운 날씨에 수고하십니다
다름이 아니라
오라클 PL/SQL 로 개발을 하고있는데
조회전용 PL/SQL 을 만들고 싶습니다.
그러니까... 단지 테이블의 데이터를 조건에 맞추어 Select 하고 싶은데
꼭 Select....Into.... from 테이블 Where 조건
이런 형태로밖에 작성이 안되는 건지...
일반 SQL 문처럼 Select * from 테이블 Where 조건 이런식으로는 표현이 불가능 합니까?
<현재 구성되어있는 방법입니다>
-파라메터 선언하고
-Declare 부문에 변수 선언하고
-Cursor open 해서
-Fetch 해서
-조건에 맞는 데이터를 Select 해서
-임시 테이블에 Insert 시키고
-델파이 폼에서 임시테이블의 결과Set을 Grid에 출력하고...
그리고
델파이의 StoreProc 컴포넌트를 Query 컴포넌트 처럼 사용해서
DBGrid에 결과 DataSet을 출력하고 싶은데...
잘 안되네요..................
Client용 StoreProc 컴포넌트 사용법은 대강 알고 있습니다
해결방법만 알려주시면 고맙겠습니다...
우선은 Pakage 선언부에 다음과 같이 선언합니다.
===============================================
Pakage test IS
type temp record
(
dept emp.dept%TYPE;
name emp.name&TYPE;
);
type tmplist IS REF CURSOR RETURN emp%ROWTYPE;
type emplist IS REF CURSOR RETURN temp;
END;
===============================================
Procedure는 다음과 같이 작성합니다.
===============================================
procedure apache(tmplist IN OUT test.tmplist) IS
BEGIN
OPEN tmplist FOR
SELECT * FROM EMP;
END;
procedure apache1(emplist IN OUT test.emplist) IS
BEGIN
OPEN emplist FOR
SELECT dept, name FROM EMP;
END;
===============================================
delphi에서 StoredProc 컴포넌트의 StoreProcName을 선택합니다.
Params를 선택하면 인자의 값이 자동으로 나타나는데 DataType을 ftCursor로 하시면됩니다.
만일 나타나지 않으면 Param를 하나생성해서
DataType:ftCursor,
Name:emplist or tmplist(StoredProc의 인자 변수명과 일치),
ParamType:ptInputOutput 으로 하시면됩니다.
그런후에 DataSource를 StoredProc에 연결시키고, 연결된 DataSource를 DBGrid 등의
데이터 컴포너트에 연결하시면 작성된 값들이 TQuery와 같이 표현됩니다.
Insert, Update, Delete 등도 가능합니다.
기타 문의 사항은 메일을 주십시요....