programing

RAW 타입 변수는 PL/SQL 코드에서 불변입니까?

mailnote 2023. 10. 13. 22:23
반응형

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 코드에서도 불변입니다.그게 정말 사실이니?이 질문에 대한 설명과 역사가 더 있는 것이 좋을 것 같습니다.

참조:

  1. https://asktom.oracle.com/pls/apex/f?p=100:11:0 ::::P11_QUESTION_ID:10445025326812#팔로우업-76860752200038

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

반응형