데이타베이스
프로시져로 전달한 데이타의 숫자,문자열구분
여린완자
2025. 1. 17. 15:29
프로시져로 전달한 데이타의 숫자,문자열구분
입력 데이터에 구분자 추가
입력 데이터를 C/C++에서 Oracle로 전달하기 전에, 숫자와 문자열을 구분하는 구분자를 추가합니다. 예를 들어:
- 숫자는 "N:<value>" 형태
- 문자열은 "S:<value>" 형태
프로시저 수정
CREATE OR REPLACE PROCEDURE bulk_insert_proc ( p_data IN SYS.ODCIVARCHAR2LIST ) IS v_prefix VARCHAR2(1); v_value VARCHAR2(4000); BEGIN FOR i IN 1..p_data.COUNT LOOP v_prefix := SUBSTR(p_data(i), 1, 2); -- 앞의 구분자 확인 v_value := SUBSTR(p_data(i), 3); -- 구분자 이후의 값 IF v_prefix = 'N:' THEN INSERT INTO your_table (number_column, string_column) VALUES (TO_NUMBER(v_value), NULL); ELSIF v_prefix = 'S:' THEN INSERT INTO your_table (number_column, string_column) VALUES (NULL, v_value); END IF; END LOOP; COMMIT; END; / |
C/C++ 코드에서 데이터 예시:
char insertmsg[1000][1024] = { "N:12345", // 숫자 "S:Hello World", // 문자열 ... }; |