Oracle SQL Developer에서 BLOB(JSON 포함)를 편집하려면 어떻게 해야 합니까?
Oracle SQL Developer에서 BLOB(JSON 텍스트 포함)를 편집하려면 어떻게 해야 합니까?
열어서 볼 수 있는데 편집하려면 외부 편집기가 필요한가요?메모장만 사용하더라도 무엇을 사용할 것인지, 어떻게 사용할 것인지에 대한 도움은 답변에서 매우 감사할 것입니다.
편집: 해당 BLOB에 JSON 텍스트가 포함되어 있습니다.
SQL 개발자 3.1(아마도 이전 릴리스)에서 BLOB를 반환하는 쿼리를 실행하는 경우 원하는 특정 BLOB를 두 번 클릭하면 데이터를 외부 편집기로 보내거나 기본 제공 SQL 개발자가 데이터를 이미지 또는 텍스트로 해석하도록 표시하라는 메시지가 표시됩니다.텍스트 옵션을 선택하면 JSON 데이터가 올바르게 표시될 수 있습니다.
그러나 데이터를 변경하려면 다음 명령을 발행해야 합니다.UPDATE
실제로 데이터를 설정할 수 있습니다.SQL 개발자는 LOB 데이터를 직접 편집할 수 있는 기능이 없습니다.예를들면
UPDATE table_name
SET column_with_json_data =
utl_i18n.string_to_raw( '{"foo": {"id": "1", "value": "2"}}' )
WHERE primary_key = <<some value>>
는 데이터베이스 문자 집합을 사용하여 인코딩된 새 JSON 데이터로 지정된 행을 업데이트합니다.데이터를 다른 문자 집합에 저장하려면string_to_raw
는 문자 집합을 지정하는 선택적인 두 번째 매개 변수를 사용합니다.그래서 UTF-8 문자 집합을 사용해서 데이터를 저장하고 싶다면, 이런 작업을 해야 합니다.
UPDATE table_name
SET column_with_json_data =
utl_i18n.string_to_raw( '{"foo": {"id": "1", "value": "2"}}', 'AL32UTF8' )
WHERE primary_key = <<some value>>
물론 JSON 데이터는 텍스트이므로 문자 크기가 큰 객체를 저장하도록 설계된 CLOB에 데이터를 저장하는 것이 훨씬 좋습니다.그러면 SQL Developer(및 기타 도구)에서 결과를 선택한 다음 추가 작업을 수행하여 텍스트로 변환할 필요 없이 텍스트를 표시할 수 있습니다.그리고 데이터를 다음과 같이 변환할 필요가 없습니다.RAW
데이터베이스의 데이터를 업데이트하기 위해.
데이터가 너무 긴 경우string_to_raw
처리합니다(문자 집합과 데이터에 따라 다르지만 언제든지 발생합니다.RAW
데이터가 2000바이트를 초과함)에 데이터를 저장할 수 있습니다.CLOB
그리고 그것을 a로 변환합니다.BLOB
테이블을 업데이트하는 데 사용할 수 있습니다.그것은 좀 더 복잡하지만 더 유연합니다.이 예제에서는 JSON 데이터를 '*'로 3200자에 추가합니다. 테스트 데이터는 더 이상 유효한 JSON이 아니지만 이 질문의 목적에서는 중요하지 않습니다.
declare
l_blob blob;
l_clob clob := rpad('{"foo": {"id": "1", "value": "2", "name": "bob"}}',3200,'*');
l_amt integer := dbms_lob.lobmaxsize;
l_dest_offset integer := 1;
l_src_offset integer := 1;
l_csid integer := dbms_lob.default_csid;
l_ctx integer := dbms_lob.default_lang_ctx;
l_warn integer;
begin
dbms_lob.createTemporary( l_blob, false );
dbms_lob.convertToBlob( l_blob,
l_clob,
l_amt,
l_dest_offset,
l_src_offset,
l_csid,
l_ctx,
l_warn );
-- You'll want to add a WHERE clause as well
update json_data
set data = l_blob;
dbms_lob.freeTemporary( l_blob );
end;
/
SQL을 작성할 필요 없이 개별 블롭을 변경하려는 경우 Oracle SQL Developer에서 다음 작업을 수행할 수 있습니다.
- 을 하면 과 됩니다 됩니다 과 을 하면
(BLOB)
버튼. 편집 버튼(아이콘용 연필)이 셀 오른쪽에 나타나야 합니다.클릭하세요. - 클릭
Download
, 저장된 데이터의 오른쪽으로 이동합니다.어딘가에 저장해 두세요. - 원하는 프로그램에서 파일을 편집합니다.절약하다.
- Developer의 SQL Developer의 Edit Value(값 편집) 대화상자를 클릭합니다.
Load
, Local Data(로컬 데이터)의 오른쪽에 있습니다.편집 후 파일을 저장한 위치를 찾습니다.클릭OK
지금 Edit Value(값 편집) 대화 상자에 있습니다. - 합니다를 합니다.
Commit Changes
사항에 경에는우을다다을n우에f는경eur',s .Rollback Changes
마음이 변하셨다면 버튼을 눌러주세요.
내 생각엔, 내 생각엔, 전체를 하는 것보다 훨씬 더 쉬운 것 같아요.dbms_lob.convertToBlob
이것이 단지 빠른 단발적인 것이라면.
언급URL : https://stackoverflow.com/questions/9218474/how-do-i-edit-blobs-containing-json-in-oracle-sql-developer
'programing' 카테고리의 다른 글
jQuery가 업로드 시 파일 형식을 제한하도록 하는 방법은 무엇입니까? (0) | 2023.09.08 |
---|---|
iframe 로드 완료 이벤트 캡처 (0) | 2023.09.08 |
전체 포스트백 없이 AJAX 업데이트 패널에서 파일 업로드 (0) | 2023.09.08 |
Jquery 바인딩 더블클릭과 싱글클릭 별도 (0) | 2023.09.03 |
지정된 열의 백분위수 통계 찾기 (0) | 2023.09.03 |