>데이터 베이스 >Oracle >오라클 저장 프로시저 접합

오라클 저장 프로시저 접합

WBOY
WBOY원래의
2023-05-14 09:26:073562검색

머리말

오라클 데이터베이스에서 저장 프로시저는 일련의 SQL 문을 실행하는 데 사용되는 스크립트이며 프로그램에서 호출할 수 있습니다. 저장 프로시저(Stored Procedure)는 빠른 계산, 재사용성, 간단하고 쉬운 유지 관리 등의 장점을 갖고 있어 실제 개발에 널리 활용되고 있습니다. 이 문서에서는 저장 프로시저에서 문자열을 연결하는 작업을 소개합니다.

1. Oracle 문자열 접합

Oracle 데이터베이스에는 문자열을 접합하는 방법이 많이 있습니다. 일반적인 방법으로는 || 그 중 || 기호는 오라클 고유의 연산자로, 두 문자열이 서로 연결되어 있다는 뜻입니다. 예:

SELECT 'Hello' || 'World' FROM DUAL;

위 명령문은 "Hello World" 문자열을 반환합니다. || 기호는 두 문자열만 연결할 수 있으며 여러 문자열을 연결하는 데 사용할 수 없다는 점은 주목할 가치가 있습니다. 또한 연결된 문자열에 NULL이 나타나면 반환되는 결과도 NULL입니다. 예:

SELECT 'Hello' || NULL || 'World' FROM DUAL;

이 문은 NULL 값을 반환합니다.

일반적으로 사용되는 또 다른 문자열 연결 방법은 CONCAT 함수입니다. 이 함수는 두 개 이상의 문자열을 연결하고 연결된 문자열을 반환합니다. 예:

SELECT CONCAT('Hello', 'World') FROM DUAL;

위 문은 "Hello World" 문자열을 반환합니다. CONCAT 함수를 사용하여 문자열을 연결할 때 문자열이 NULL이면 함수는 NULL 값을 반환합니다. 예:

SELECT CONCAT('Hello', NULL, 'World') FROM DUAL;

이 문은 NULL 값도 반환합니다.

2. Oracle 저장 프로시저의 문자열 접합

Oracle 저장 프로시저에서는 || 기호와 CONCAT 함수를 사용하여 문자열 접합 작업을 수행할 수도 있습니다. 예:

CREATE OR REPLACE PROCEDURE PROC1 AS

STR1 VARCHAR2(20) := 'Hello';
STR2 VARCHAR2(20) := 'World';
STR3 VARCHAR2(50);

BEGIN

STR3 := STR1 || ' ' || STR2;
DBMS_OUTPUT.PUT_LINE(STR3);

STR3 := CONCAT(STR1, ' ', STR2);
DBMS_OUTPUT.PUT_LINE(STR3);

END;

저장 프로시저 PROC1은 STR1, STR2 및 STR3의 세 가지 문자열 변수를 정의합니다. 저장 프로시저에서는 먼저 || 기호를 사용하여 STR1과 STR2를 함께 연결하고 값을 STR3에 할당한 다음 CONCAT 함수를 사용하여 STR1과 STR2를 함께 연결하고 STR3에 값을 할당합니다. 마지막으로 DBMS_OUTPUT.PUT_LINE을 사용하여 STR3을 DBMS 출력 창에 출력합니다.

Oracle 저장 프로시저에서 여러 문자열을 연결하려는 경우 안정성과 코드 가독성을 보장할 수 있는 CONCAT 함수를 사용하는 것이 좋습니다.

3. 샘플 코드

Oracle 저장 프로시저의 문자열 접합 작업을 더 잘 이해하기 위해 전체 샘플 코드가 아래에 제공됩니다.

CREATE TABLE USER_INFO (

USER_ID     NUMBER(10),
USER_NAME   VARCHAR2(50),
PHONE_NUM   VARCHAR2(20)

);

INSERT INTO USER_INFO VALUES(1 '앨리스', '1234567890');
INSERT INTO USER_INFO VALUES(2, 'Bob', '0987654321');
INSERT INTO USER_INFO VALUES(3, 'Charlie', '1357924680');

COMMIT;

만들기 OR REPLACE PROCEDURE PROC2 AS

STR1 VARCHAR2(30);
STR2 VARCHAR2(100);

BEGIN

FOR CURR IN (SELECT USER_NAME, PHONE_NUM FROM USER_INFO ORDER BY USER_ID) LOOP
    STR1 := 'USER NAME: ' || CURR.USER_NAME || ', ';
    STR2 := CONCAT(STR2, STR1, 'PHONE NUM: ', CURR.PHONE_NUM, CHR(10));
END LOOP;
DBMS_OUTPUT.PUT_LINE(STR2);

END;

이 저장 프로시저를 실행하면 각 사용자의 이름과 전화번호가 출력됩니다. 그 중 CHR(10)은 유니코드 문자 10을 나타내며, 이는 캐리지 리턴 문자로서 줄 바꿈 출력에 사용됩니다.

4. 요약

문자열 접합은 Oracle 저장 프로시저에서 자주 사용되며 || 기호와 CONCAT 함수는 접합을 구현하는 일반적인 방법입니다. || 기호를 사용하여 두 문자열을 연결할 수 있지만 여러 문자열을 연결하는 데는 적합하지 않습니다. CONCAT 함수는 여러 문자열을 연결할 수 있고 NULL 값을 처리할 수 있으므로 문자열 접합 작업에는 CONCAT 함수를 사용하는 것이 좋습니다.

위 내용은 오라클 저장 프로시저 접합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.