Oracle은 SQL Server의 테이블 변수와 동등합니까?
SQL Server에서는 테이블 변수를 선언할 수 있습니다(DECLARE @table TABLE스크립트 실행 중에 생성되어 메모리에서 삭제됩니다.
Oracle에도 비슷한 기능이 있나요?아니면, 내가 어떻게 해야 하는지CREATE/DROP내 하드 드라이브를 분할하는 문장이요?
네.
PL/SQL 선언 블록에 TABLE TYPE 변수를 선언합니다.테이블 변수는 인덱스 기준 테이블 또는 배열이라고도 합니다.테이블 변수에는 스칼라 또는 레코드 데이터 형식과 BINARY_ 유형의 기본 키를 더한 하나의 열이 포함됩니다.정수구문:
DECLARE TYPE_name IS TABLE OF (column_type | variable %)TYPE | table.column%이진수 정수에 의한 유형 [NOT NULL] 지수
-- 그런 다음 variable_name type_name 유형의 TABLE 변수를 선언합니다.
-- TABLE 변수 variable_name(n)에 값을 할당합니다.field_name := '일부 텍스트'; -- 여기서 'n'은 인덱스 값입니다.
참고 자료: http://www.iselfschooling.com/syntax/OraclePLSQLSyntax.htm
Global Temporary Tables도 참조할 수 있습니다.
아래 솔루션은 현재 제가 할 수 있는 SQL Server와 가장 가까운 솔루션입니다.
오브젝트:
유형 T_Numbers 생성 또는 교체는 번호표이다. 함수 생성 또는 치환 누적(vNumbers T_Numbers)반품 T_NUMBER~하듯이vRet T_NUMBERS;시작한다.SELECT SUM(COLUMN_VALUE)vRet으로 일괄 수집표에서(CAST(vNumbers AS T_Numbers)), RETURN vRet;종료;
쿼리:
--Query 1: 고정번호 리스트. 선택*표(누적(T_NUMBERS(1, 2, 3, 4, 5))에서); --Query 2: 쿼리의 번호 목록. cteNumbers AS 사용 시(듀얼 유니언에서 1 AS를 Column_VALUE로 선택합니다.듀얼 유니언에서 2 AS를 Column_VALUE로 선택듀얼 유니언에서 3 AS를 Column_VALUE로 선택합니다.듀얼 유니언에서 4 AS를 Column_VALUE로 선택합니다.듀얼에서 5 AS를 Column_VALUE로 선택)선택*표에서 ( )축적하다(CAST(COLLECT(COLUMN_VALUE)를 T_NUMBER로 선택)송신원: cteNumbers)));
네, 쿼리의 결과 세트를 유지할 수 있는 타입이 있습니다(TABLE의 기능을 추측할 수 있는 경우).톰에게 묻습니다. 절차는 다음과 같습니다.
procedure p( p_state in varchar2, p_cursor in out ref_cursor_type )
is
begin
open p_cursor for select * from table where state = P_STATE;
end;
여기서 p_module은 테이블타입과 비슷합니다.이미 답변한 바와 같이 Oracle에는 결과 세트를 저장할 수 있는 옵션이 많이 있습니다.일반적으로 Oracle PL/SQL은 sqlserver 스크립트보다 훨씬 강력합니다.
oracle의 변수 테이블이 MS SQLServer의 테이블 변수와 같지 않습니다.oracle에서는 java 또는 c#의 일반 배열과 비슷하지만 MS SQL Server에서는 논리 테이블이라고 할 수 있습니다.그러나 SQL Server의 테이블 변수와 동일한 작업을 Oracle에서 수행하고자 하는 경우 커서를 사용할 수 있습니다.
안부 전해요
언급URL : https://stackoverflow.com/questions/670461/does-oracle-have-an-equivalent-of-sql-servers-table-variables
'programing' 카테고리의 다른 글
| MERN에서 백엔드 및 프런트엔드의 파일 구조를 구성하는 방법 (0) | 2023.04.05 |
|---|---|
| 플러그인에서 제목 태그를 변경하도록 wp_title을 설정하시겠습니까? (0) | 2023.04.05 |
| JSON을 통해 JSON의 가치를 얻습니다.그물 (0) | 2023.04.05 |
| 사용자의 활성 및 비활성 Oracle 세션을 모두 종료하는 방법 (0) | 2023.04.05 |
| Contact Form 7의 이메일 송신을 금지하는 방법 (0) | 2023.04.05 |