RAW(16)
의 목록을 GUID
으로 변환하는 SQL
스크립트를 만드는 방법이 있습니까?Raw (16)를 GUID로 변환
나는 약 1,400 만 항목을 변환하는 간단하고 빠른 방법을 찾을 필요가있다. 목록을 여러 개의 구분 된 파일로 내보내고이 데이터를 스키마로 가져올 수 있습니다.
RAW(16)
의 목록을 GUID
으로 변환하는 SQL
스크립트를 만드는 방법이 있습니까?Raw (16)를 GUID로 변환
나는 약 1,400 만 항목을 변환하는 간단하고 빠른 방법을 찾을 필요가있다. 목록을 여러 개의 구분 된 파일로 내보내고이 데이터를 스키마로 가져올 수 있습니다.
RAW(16)
기본적으로 은입니다. GUID는 16 바이트 16 진수 값입니다. 그래서 하나의 옵션은 단지 그것을 그냥 두는 것입니다. 오라클은 암시 적 특성과 진수 사이의 캐스트 것입니다, 그래서 당신은 누구의 원시 값 FE2BF132638011E3A647F0DEF1FEB9E8
있는 행을 찾고 있다면, 당신은 당신의 쿼리 문자열을 사용할 수 있습니다
SELECT *
FROM myTable
WHERE myRaw16Column = 'FE2BF132638011E3A647F0DEF1FEB9E8';
당신이 CHAR(32)
에 RAW(16)
을 변경하려면 당신의 변환은 @tbone가 제안하는대로 RAWTOHEX
을 사용할 수 있습니다.
INSERT INTO NewTable (myGUIDColumn, ...)
SELECT RAWTOHEX(myRawColumn), ...
FROM OldTable
당신이 그것을 확인하려는 경우 CHAR(36)
대시 형식의 GUID 상황이 빠르게 복잡해 :
INSERT INTO NewTable (myGUIDColumn, ...)
SELECT REGEXP_REPLACE(myRaw16Column, '(.{8})(.{4})(.{4})(.{4})(.*)', '\1-\2-\3-\4-\5'), ...
FROM OldTable
myGUIDColumn은 Char (32) 데이터 유형입니까? 또한 대시 형식의 GUID로도 필요합니다. – UNIBALL
'RAWTOHEX' 예제는'RAW (16)'을'CHAR (32)'인 형식화되지 않은 GUID로 변경하는 방법을 보여줍니다. 'REGEXP_REPLACE' 예제는'RAW (16)'을'CHAR (36)'인 대쉬 형식의 GUID로 변경하는 방법을 보여줍니다. 개인적으로, 필자는'RAW (16)'로 저장하고 싶습니다. 이것은'SYS_GUID()'오라클 함수가 반환하는 것으로서, 필요에 따라 출력을 위해 포맷합니다. 그러나 그것은 단지 나의 취향이다. 내 답변의 첫 번째 예제 에서처럼 특별한 트릭을 사용하지 않고도'RAW (16)'열에서 GUID 값을 쿼리 할 수 있습니다. –
감사합니다. 나는 현재 약 1,400 만 나는 UNIX에서 삭제해야 할 파일과 내가 그들을 파일 이름입니다 식별 할 수있는 유일한 방법이있다. 파일 이름은 다음과 같습니다. FN {FFEF5B84-D2ED-45E3-9BD6-5C368357428A} {6A6CF41E-BE0F-4892-9808-34EDDD802300} -0.pdf 이 제 GUID는 object_id에 상기 제 GUID 객체 저장 식별자이다. 그러나 데이터베이스는 RAW (16) 형식으로이 목록을 나열합니다. 현재 삭제해야하는 파일 목록의 전체 목록이 있지만 Object_ID는 RAW (16) 형식입니다. Object_ID를 GUID로 변환 할 수 있다면 파일 목록을 만들 수 있습니다. – UNIBALL
당신이 RAWTOHEX 의미? – tbone