programing

ORA-00911: 비활성 문자 오류 해결 방법

fastcode 2023. 3. 1. 13:45
반응형

ORA-00911: 비활성 문자 오류 해결 방법

나는 그 일을 실행하려고 했다.SQL INSERT와 함께Toad for oracle:

INSERT INTO GRAT_ACTIVITY
   (UUID, IP_ADRESS, SEND_MAIL, DATE_CREA, DATE_UPD, CREATOR, CENTER, ETAT, REQUEST)
 VALUES('555-vgd9-pllkd-5513', '172.12.23.130', 'N', SYSDATE, SYSDATE, '1554', 'M18', 'I', 8842);
--COMMIT;

GRAT_ACTIVITY테이블 구조는 다음과 같습니다.

CREATE TABLE CASH.GRAT_ACTIVITY
(
  UUID       VARCHAR2(64 BYTE) NOT NULL,
  IP_ADRESS  VARCHAR2(15 BYTE),
  SEND_MAIL  VARCHAR2(1 BYTE),
  DATE_CREA  DATE,
  DATE_UPD   DATE,
  CREATOR    VARCHAR2(4 BYTE),
  CENTER     VARCHAR2(4 BYTE),
  ETAT       VARCHAR2(1 BYTE),
  REQUEST    NUMBER
)

에러 메시지:

ORA-00911: 잘못된 문자

원인: 식별자는 문자와 숫자 이외의 ASCII 문자로 시작할 수 없습니다.$#_도 첫 번째 문자 뒤에 사용할 수 있습니다.큰따옴표로 둘러싸인 식별자에는 큰따옴표 이외의 문자를 포함할 수 있습니다.대체 따옴표(q'#...)#'는 공백, 탭 또는 캐리지 리턴을 구분자로 사용할 수 없습니다.기타 모든 컨텍스트에 대해서는 SQL Language Reference Manual을 참조하십시오.

액션: 없음

어떻게 하면 해결할 수 있을까요?

실행 중인 문장이 유효합니다.이 오류는 Toad가 명령어의 일부로 후행 세미콜론을 포함한다는 의미인 것 같습니다. 이 경우 명령어는ORA-00911스테이트먼트의 일부로 포함되는 경우 - 스테이트먼트 자체의 일부가 아닌 클라이언트의 스테이트먼트 구분자이기 때문입니다.

다음 주석으로 표시된 이 Toad(여기 설명)를 혼란스럽게 하거나, 모든 것을 단일 문장으로 실행하려고 하기 때문일 수 있습니다. 이 경우 run F5script 명령() 대신 run script 명령()F9을 사용할 수 있습니다.

코멘트 아웃 행을 삭제하는 것만으로 문제가 해소됩니다만, 실제 커밋에서도 이 문제가 확인되고 있는 경우는, 문장의 실행에 잘못된 방법을 사용하고 있는 것이 원인이라고 생각할 수 있습니다.

이 관련 질문에 대한 설명에서 Toad가 세미콜론을 구문 분석하는 방법에 대한 자세한 내용은 나와 있지만, 자세한 내용은 Toad에 대해 잘 모릅니다.

쿼리 내부에서 세미콜론(;), 백틱(') 등을 삭제합니다.

세미콜론( ; )을 삭제합니다.

Oracle에서는 DB에서 쿼리를 직접 실행한 경우 세미콜론을 사용할 수도 있고 사용할 수도 없습니다.단, java를 사용하여 oracle 쿼리를 실행할 때는 마지막에 세미콜론을 삭제해야 합니다.

컬럼 또는 테이블 이름에 $, _, # 이외의 특수문자를 사용할 경우 이름을 큰따옴표로 묶어야 합니다.링크

저도 최근에 같은 일을 겪었어요.문서에서 SQL 개발자에게 스크립트를 복사할 때 공백이 있었기 때문입니다.나는 공간을 없애야 했고 대본은 실행되었다.

Oracle SQL을 실행하는 서드파티 프로그램을 사용하고 있는데 이 오류가 발생했습니다.SELECT스테이트먼트, 특수문자가 포함된 코멘트 메모가 몇 개 있습니다.코멘트를 삭제하면 문제가 해결.

저도 같은 문제가 있었는데, 그건 줄의 끝 때문이었어요.나는 다른 서류에서 복사했다.모든 것을 같은 선에 놓고 다시 나누자 효과가 있었다.

이 Oracle 오류를 해결하는 옵션은 다음과 같습니다.

옵션 #1 이 오류는 SQL 문에 특수 문자를 사용하려고 할 때 발생합니다.컬럼 또는 테이블 이름에 $, _, # 이외의 특수문자를 사용할 경우 이름을 큰따옴표로 묶어야 합니다.

옵션 #2 이 오류는 SQL을 다른 프로그램에서 편집기에 붙여넣은 경우 발생할 수 있습니다.경우에 따라서는, 인쇄할 수 없는 문자가 표시되는 일이 있습니다.이 경우 SQL 문을 다시 입력한 후 다시 실행해야 합니다.

옵션 #3 이 오류는 SQL WHERE 절에서 특수 문자가 사용되며 값이 따옴표로 묶이지 않은 경우에 발생합니다.

예를 들어 다음과 같은 SQL 문이 있는 경우:

공급업체에서 *를 선택하십시오. 공급업체 이름 =?;

아마 다른 소스에서 SQL을 복사해서 붙여 넣었을 거예요.뭔가 망친 것 같아요.어떻게 된 건지 이유를 모르겠어요.

사용하고 있는 IDE에 sql을 다시 입력하면 동작합니다.

언급URL : https://stackoverflow.com/questions/27987882/how-can-i-solve-ora-00911-invalid-character-error

반응형