2014-10-29 4 views
1

나는 빼기, 점 및 몇 가지 다른 기호와 같은 기호로 열 이름을 사용하려고했습니다. Oracle SQL 구문 분석기는이를 제외하지 않습니다. 이처럼 :SQL 열 이름에 기호를 사용하는 방법은 무엇입니까?

select 
    a.ID as Article-Number, a.Name as Name 
from 
    Articles a 
where 
    (a.ID = '3264') 

그리고 그것은 a.ID as 'Article-Number'을 제외시켰다하지 않습니다 ("FROM keyword not found where expected"을 말한다). 열 이름에 기호가있을 수 있습니까?

답변

4

당신은 별칭과 열 이름을 탈출 따옴표 (")를 사용할 수 있습니다 :

select 
    a.ID as "Article-Number", a.Name as "Name" 
from 
    Articles a 
where 
    (a.ID = '3264') 
+0

Hmpf, 나쁘다. 나는 큰 따옴표를 사용하지 않았다. 나는 오라클에서''''''와'''가 똑같다고 생각했고 나는 C#에서 그것들을 벗어날 필요가 없기 때문에'''를 선호한다. – Bitterblue

+0

'name' 별칭은 괜찮지 만, –

+0

@LalitKumarB 나는 일관성을 유지했다. (당연히 맞지만) – Mureinik

2

문제는 별칭으로 Article-Number 함께. 별칭 name은 완벽합니다.

SQL> select e.ename as name from emp e where rownum = 1; 

NAME 
---------- 
SMITH 

SQL> select e.ename as Article-Number from emp e where rownum = 1; 
select e.ename as Article-Number from emp e where rownum = 1 
         * 
ERROR at line 1: 
ORA-00923: FROM keyword not found where expected 


SQL> select e.ename as "Article-Number" from emp e where rownum = 1; 

Article-Nu 
---------- 
SMITH 

SQL> 

그래서, double-quotation마르크는 -을 탈출 별칭으로 만 Article-Number 필요합니다.

2

열 이름에 기호가있을 수 있습니까?

모든 별칭이 큰 따옴표를 가져올 수 있도록 여기에서 자동화하고 있습니다. 중요한 것은 별칭에 문자열을 사용하는 방법을 알고 있다는 것입니다.

당신이 스키마의 이름 탈출 따옴표 ( ")를 사용하여 오라클에서

(포함한다. 열 이름).

  • 이름은 1 ~ 30 자 여야한다 : 당신이 일을 자동화 해주는하려는 경우

    그러나, 당신이 알아야 할 몇 가지 규칙이 있습니다. 식별자 자세한 사항은 Oracle's Schema Object Naming Rules를 참조 \0 (일명 NUL) 문자를

을이 한계에 따옴표를 포함 할 수 없습니다 ("를)
ORA-00972: identifier is too long

  • 이름을 올릴 초과 아니다.