머리말
오라클 데이터베이스에서 저장 프로시저는 일련의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!