하나의 필드를 CLOB로 사용하여 오라클 삽입 스크립트를 작성하는 방법은 무엇입니까?
하나의 테이블에 하나의 레코드를 삽입하는 데만 사용할 삽입 스크립트를 만들고 싶습니다.
5개의 열이 있으며 그 중 하나는 CLOB 유형입니다.
내가 시도할 때마다 4000보다 큰 문자열을 삽입할 수 없다고 나옵니다.
저는 clob을 하나의 필드로 하는 insert 문이 필요합니다.
INSERT INTO tbltablename
(id,
NAME,
description,
accountnumber,
fathername)
VALUES (1,
N'Name',
clob'some very long string here, greater than 4000 characters',
23,
'John') ;
SQL 문자열은 4000바이트를 초과할 수 없지만 Pl/SQL에는 32767바이트의 문자열이 있을 수 있습니다.익명 블록을 통해 큰 문자열을 삽입하는 예를 보려면 아래를 참조하십시오. 이 경우 필요한 모든 작업을 수행할 수 있습니다.
참고 varchar2(32000)를 CLOB로 변경했습니다.
set serveroutput ON
CREATE TABLE testclob
(
id NUMBER,
c CLOB,
d VARCHAR2(4000)
);
DECLARE
reallybigtextstring CLOB := '123';
i INT;
BEGIN
WHILE Length(reallybigtextstring) <= 60000 LOOP
reallybigtextstring := reallybigtextstring
|| '000000000000000000000000000000000';
END LOOP;
INSERT INTO testclob
(id,
c,
d)
VALUES (0,
reallybigtextstring,
'done');
dbms_output.Put_line('I have finished inputting your clob: '
|| Length(reallybigtextstring));
END;
/
SELECT *
FROM testclob;
"I have finished inputting your clob: 60030"
저는 가장 많이 투표된 답보다 더 간단한 해결책으로 제 문제를 해결했습니다.
빅 클롭 문자열을 여러 문자열로 분할해야 합니다. 각 문자열은 4000자 미만이고 각 문자열은 다음을 사용하여 변환합니다.to_clob
방법, 그리고 그것들을 연결합니다.||
교환입니다.
다음은 최종 삽입 문의 예입니다.
INSERT INTO tbltablename
(id,
name,
big_clob_description)
VALUES (1,
N'A Name',
to_clob('string with less than 4000 chars')
|| to_clob('rest of string here, with less than 4000 chars')
) ;
내 삽입 코드는 스크립트에 의해 생성되었고, 문자열을 끊는 것은 어렵지 않았습니다.
사용할 수 있습니다.to_clob
기능도 합니다.
INSERT INTO tbltablename
(id,
NAME,
description,
accountnumber,
fathername)
VALUES (1,
N'Name',
to_clob('clob''some very long string here, greater than 4000 characters'),
23,
'John') ;
자세한 내용은 https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions182.htm 에서 확인할 수 있습니다.
안부 전해요.
언급URL : https://stackoverflow.com/questions/3890567/how-to-write-oracle-insert-script-with-one-field-as-clob
'programing' 카테고리의 다른 글
Python 디버깅 팁 (0) | 2023.06.15 |
---|---|
임의 키를 사용하여 입력한 개체를 선언하는 방법은 무엇입니까? (0) | 2023.06.15 |
VueX: 모듈로 상태를 중첩하지 않습니까? (0) | 2023.06.15 |
R이 단축 축 레이블(과학적 표기법) 표시를 중지하도록 합니다(예: 1e+00). (0) | 2023.06.15 |
오브젝트 키를 기반으로 TypeScript에서 동적으로 열거형을 생성하는 방법이 있습니까? (0) | 2023.06.15 |