변수에 값을 할당하는 방법: 1. ":="를 사용하여 값을 직접 할당하고 구문은 "변수 이름:=값;"입니다. 2. "테이블에서 변수로 테이블 필드 선택"을 사용합니다. 3. "즉시 SQL 문 문자열을 변수로 실행" 문을 사용합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Oracle 11g 버전, Dell G3 컴퓨터.
1. 변수 선언 3가지 방법
데이터 유형의 선언 방법에 따라 구분됨
방법 1: 직접 선언 데이터 유형
형식: 변수 이름 데이터 유형(크기)
V_START_DATE VARCHAR2(19); v_num number;
설명:
문자열 유형으로 설정하면 크기를 지정해야 하며, 그렇지 않으면 오류가 보고됩니다.
변수는 "begin" 키워드 앞에 만들어져야 합니다.
--错误用法 BEGIN v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)';
방법 2: %TYPE 문 사용
형식: 변수 이름 테이블 이름.필드 이름 %TYPE
의미: 변수의 데이터 유형이 지정된 테이블의 지정된 필드의 데이터 유형과 일치합니다.
V_ORGSEQ BASE_ORG_INFO.ORGSEQ%TYPE;
방법 3: %ROWTYPE 선언 사용
형식: 변수 이름 테이블 이름%ROWTYPE
의미: 변수의 데이터 유형이 지정된 테이블의 지정된 행 레코드(모든 필드)의 데이터 유형과 일치합니다
--VIRTUAL_CARD表整行数据 V_ROW_VIRTUAL_CARD VIRTUAL_CARD%ROWTYPE;
요약:
저장 프로시저에서 변수를 선언할 때 "DECLARE" 키워드를 사용할 필요가 없습니다.
변수는 대소문자를 구분하지 않습니다.
사용.
2. 3가지 변수 할당
방법 1: 직접 할당, ":="
사용 조건: 처음 2가지 변수 선언 방법에 적용됩니다.
V_ORGID := '110';
참고:
변수 뒤에는 sql 문이 바로 올 수 없습니다. sql은 실행되지 않습니다.
--错误用法 V_ORGSEQ := SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO; --正确用法 V_ORGSEQ := 'SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO';
변수 선언과 할당을 함께 할 수 있습니다.
--正确用法 v_sql varchar2(100) := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; BEGIN /* 具体业务 */ END;
방법 2: 테이블 필드를 테이블에서 변수로 선택
변형 1: 지정된 테이블의 지정된 필드를 쿼리
사용 조건: 변수 선언의 처음 두 가지 방법에 적용 가능하며
을 사용할 수 있습니다.--根据医疗机构ID查询对应的父机构的机构序列 SELECT ORGSEQ INTO V_ORGSEQ FROM BASE_ORG_INFO WHERE ORGID = (SELECT PARENTORGID FROM BASE_ORG_INFO WHERE ORGID = V_ORGID);
Transformation Two: 지정된 테이블의 모든 필드 쿼리
사용 조건: 변수 선언의 세 번째 방법에만 적용 가능
--将id=5120的VIRTUAL_CARD表数据赋值给变量V_ROW_VIRTUAL_CARD SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120;
설명:
쿼리 결과는 하나의 레코드만 반환할 수 있습니다.
쿼리된 테이블 필드는 테이블의 모든 필드여야 합니다.
오류 예:
--错误举例一:查询的是所有表记录 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T; --错误举例二:查询的是该表的多个字段 SELECT t.id,t.name INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T;
방법 3: 변수에 즉시 SQL 문 문자열 실행
declare/* 存储过程,不需要声明 */ v_sql varchar2(100); V_ORGSEQ varchar2(100); begin v_sql := 'SELECT ORGSEQ FROM BASE_ORG_INFO where orgcode=to_char(410621101233)'; --V_ORGSEQ赋值 execute immediate v_sql INTO V_ORGSEQ; --打印结果 DBMS_OUTPUT.put_line(V_ORGSEQ); END;
3. 변수 호출
일반적으로 변수에는 할당, 논리적 판단이라는 세 가지 사용 시나리오만 있습니다. , 산술 연산;
참고: 쿼리 열로 사용할 수 없습니다
--错误调用 select V_ORGSEQ from dual;
%ROWTYPE을 사용하여 선언된 변수를 호출하는 방법은 무엇입니까?
"변수명.테이블 필드" 방법을 사용하면 테이블 내 지정된 행(반환 행)의 지정된 열(임의의 열)이 나타내는 데이터를 가져올 수 있습니다.
--V_ROW_VIRTUAL_CARD赋值 SELECT * INTO V_ROW_VIRTUAL_CARD FROM VIRTUAL_CARD T where t.id = 5120; --调用 DBMS_OUTPUT.put_line(V_ROW_VIRTUAL_CARD.ID);
추천 튜토리얼: "Oracle Tutorial"
위 내용은 Oracle 저장 프로시저에서 변수에 값을 할당하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!