2017-03-27 1 views
0

기존 테이블에 새 열을 추가하려고하지만이 열 이름을 만들려고 할 때 잘못된 문자 오류가 발생합니다.열 이름에 % 기호를 사용할 수 있습니까?

SQL 오류 : ORA-00911 : 잘못된 문자 00911. 00000 - "잘못된 문자" * 원인 : 식별자 문자와 숫자 이외의 ASCII 문자로 시작되지 않을 수 있습니다. 첫 번째 문자 뒤에 $ # _도 사용할 수 있습니다. 이중 인용 부호로 묶인 식별자는 이중 인용 부호 이외의 문자이면 을 포함 할 수 있습니다. 대체 인용 부호 (q '# ... #')은 공백, 탭 또는 캐리지 리턴을 구분 기호로 사용할 수 없습니다. 다른 모든 문맥에 대해서는 SQL 언어 Reference Manual을 참조하십시오.

내 코드입니다 :

테이블 변경 계산이 WEIGHTED_ %의 번호를 추가 ;

내가 뭘 잘못하고 있니?

+4

큰 따옴표 이스케이프 : '추가'WEIGHTED _ % "'-하지만이 필드를 처리하는 모든 쿼리에서 - WEIGHTED_PERCENT?가 틀리면 다시 이스케이프해야합니다. –

+0

[데이터베이스 객체 이름 지정 규칙을 참조하십시오.] (https://docs.oracle.com/database/121/SQLRF/sql_elements008.htm) 특히 7 번. 오라클은 따옴표 붙은 식별자를 사용하지 않는 것이 좋습니다. 여기에서 할. –

+0

또한 [아마도 중복] (http://stackoverflow.com/q/13798035/266304); 특별히 %를 사용하는 것에 관한 질문을 볼 수 없습니다. –

답변

0

정말 % 기호를 사용하는 것을 권하지 않습니다. 대신 퍼센트를 입력하는 것이 좋습니다. 그러나 오류가 표시되면 열 이름을 큰 따옴표로 묶어야합니다. % 쿼리처럼 수행하고 SQL 주입을 허용하기 때문에 취약점으로 간주됩니다 노출 쿼리를 포함한 예약 된 문자이기 때문에 그때는 여전히 작동 할

Alter Table Calculations Add "WEIGHTED_%" Number; 

확실하지.

+0

그게 효과가! 감사! 나는 그 중 하나를 사용하는 아이디어를 좋아하지 않지만, 내 전화가 아니야. –

+1

'SELECT' 쿼리에서'%'문자 (큰 따옴표로 묶음)를 사용하면 SQL 주입 취약점을 소개하지 않습니다 **. SQL 명령을 호출하는 데 사용하는 스크립팅 언어가 특수 문자로 '%'를 사용하는 경우 별도의 문제 일 수 있지만 SQL과 아무 관련이 없으며 SQL 명령을 호출하는 방법에 전적으로 의존합니다. – MT0

0

예. 가능한. 열 이름에 이중 코드를 사용하십시오. 첨부 된 스크린 샷을 확인하십시오. enter image description here


하지만 %를 열 이름에 사용하는 것은 좋지 않습니다. 권장하지 않습니다.

관련 문제