RAW 타입 변수는 PL/SQL 코드에서 불변입니까?
아레.RAW유형 변수는 PL/SQL 코드에서 불변입니까?내 말은 내가 특정 바이트를 변경할 수 있습니까?RAW메모리 복사 없이 딱 맞는 타입 변수?
물론 우리는 가지고 있다.UTL_RAW사양 바이트 변경에 적합한 몇 가지 루틴이 포함된 패키지이지만 모두 가변 인스턴스 메모리를 복사하는 것처럼 보입니다.
UTL_RAW.BIT_AND UTL_RAW.BIT_OR UTL_RAW.OVERLAY
또한 이 문제는 효과적인 문자열 연결 문제와 밀접하게 연관되어 있습니다.예를 들어 Java의 문자열도 불변이며 이 작업을 위한 StringBuilder가 있습니다.오라클 문서에서 이에 대한 명확한 정보를 찾지 못했습니다.구글 검색을 좀 한 후에 대답은 다음과 같습니다. 예. RAW 유형 변수는 문자열뿐만 아니라 PL/SQL 코드에서도 불변입니다.그게 정말 사실이니?이 질문에 대한 설명과 역사가 더 있는 것이 좋을 것 같습니다.
참조:
PL/SQL에는 변수에 할당된 메모리의 특정 하위 부분을 변경하는 것과 같은 것이 없습니다.함수인 경우(상기의 경우와 마찬가지)utl_rawroutine), 항상 새 값 인스턴스를 반환합니다.만약 그것이 다음과 같은 절차일 경우.in out nocopy매개변수는 인수의 복사가 아니라 인수에 대한 참조에서 작동할 수도 있지만, 절차 내부의 실제 작업은 값을 복사하는 것이지, 동일한 메모리에서 작동하는 것은 아닙니다. (글쎄요, LOB에는 적용되지 않지만, 질문하신 내용은 아닙니다.)
PL/SQL은 SQL 위에 있는 절차 언어입니다.SQL을 절차적으로 사용할 수 있도록 설계되었으며, 매우 빠르고 매우 효과적으로 설계되지 않았습니다.메모리에서 직접 바이트를 변경해야 하는 경우 C 또는 어셈블러를 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/32966305/are-the-raw-type-variables-immutable-in-pl-sql-code
'programing' 카테고리의 다른 글
| 클랑에 커스텀 어셈블러를 어떻게 사용합니까? (0) | 2023.10.13 |
|---|---|
| 5 mysql 서버에서 테이블 1개를 사용하고 서버를 함께 연결합니다. (0) | 2023.10.13 |
| 성배 서비스에서 g.render 사용하기 (0) | 2023.10.13 |
| 'jquery-2.0.2min.map을 찾을 수 없습니다' 오류 (0) | 2023.10.13 |
| Oracle - 특정 값을 기준으로 먼저 순서를 지정한 후 나머지 순서를 지정 (0) | 2023.10.13 |