최근 직장에서 Oracle 데이터베이스에 있는 모든 테이블의 "플래그" 필드를 "I"로 업데이트해야 하는 요구 사항이 발생했습니다.
update table_name set flag = 'I'
"I"는 문자열로 사용되므로 구문에서 I를 작은따옴표로 묶어야 합니다.
데이터베이스에 여러 개의 테이블이 있기 때문에, SQL 문을 통해 모든 문을 직접 생성할 수 있기를 바라서 다음과 같은 SQL을 작성했습니다.
select 'update ' || table_name || ' set flag = 'I'' || ';' from user_tables
이때 실행하면 "오류 보고서: ORA-00923: 필수 FROM 키워드를 찾을 수 없습니다." 오류 위치는 두 번째 싱글에 있습니다. 작은 따옴표 매칭 관계로 인해 'I'의 따옴표 위치. , I는 문자열이 아니어서 오류가 보고되는데 작은 따옴표를 표시하려면 어떻게 해야 하나요?
명령문:
select ''' from dual
도 오류를 보고합니다. "'"를 표시해야 하는 경우 "'"가 키워드로 사용됩니다. , Java의 ""와 마찬가지로 이스케이프 문자를 사용해야 합니다. 그리고 의미 문자는 작은따옴표 "'"이므로 SQL은 다음과 같이 작성해야 합니다.
select '''' from dual
두 번째 작은따옴표 "'"를 어떻게 이해하나요? 그냥 ""로 바꾸면 필요한 SQL은 다음과 같습니다.
select 'update ' || table_name || ' set flag = ''I''' || ';' from user_tables
괜찮습니다!
요약
위 내용은 모두 오라클 탈출 문자에 관한 내용입니다. 궁금한 점이 있으면 메시지를 남겨서 소통하세요.
더 많은 Oracle 전송에 대한 자세한 내용은 PHP 중국어 웹사이트를 참고하세요