2011-05-05 5 views
8

I (?? PL) 오라클에서 개체 유형을 만들려면 다음 코드를SQL에서 #의 의미는 무엇입니까?

CREATE OR REPLACE TYPE STAFF_T as OBJECT(Staff_ID# NUMBER, Person PERSON_T); \ 
내가 선언의 Staff_ID 변수에 추가 된 #의 의미가 무엇인지 알고 싶습니다

?

+0

어떤 사람들은 "숫자"의 약어로 #을 사용합니다. 예 : 'POLICY # '은 "정책 번호"로 발음됩니다. 귀하의 경우에는 "Staff ID Number"가됩니다. –

답변

2

누구든지이 코드를 작성한 사람은 아마도 #이 (가) 특별한 의미는 아닙니다.

하지만 분명히 오라클에게 어떤 의미가 있습니다.

오라클 강하게 nonquoted 식별자에 $와 #을 사용하여 에서 당신을 낙담 다음 SQL Language Reference가에서.

  • 그것이 정말 오래된 버그에 관련이
  • 오라클 할 계획합니다 ( 경고가 적어도 오라클 7로 돌아갑니다) : 경고에 대해 무엇 여기

는 일부 추측입니다 향후 버전에서 사용 가능
  • 해당 문자 은 Oracle이 지원하는 모든 키보드, 문자 집합 또는 플랫폼에서 사용할 수 없습니다.
  • 데이터 딕셔너리는 숫자 기호를 많이 사용하며 사용자 객체에 대해서는 잘 작동한다고 말할 수 있습니다. 그러나 안전을 위해서 당신은 그것을 제거하기를 원할지도 모릅니다.

    +1

    많은 오라클 데이터 딕셔너리가이를 사용하기 때문에 오래된 버그라고 생각합니다. 예를 들어 V $ SESSION의 SERIAL # 열. – APC

    +1

    나는 이것이 호환성 때문이라고 생각합니다. 예를 들어,'#'는'MySQL'의 주석입니다. – Quassnoi

    10

    특별한 의미는 없습니다.

    오라클은 다른 영숫자 문자와 마찬가지로 식별자에 $, _#을 사용할 수 있지만 식별자는 알파벳 문자 (영문자)로 시작해야합니다.

    3

    이는 열 이름 Staff_ID#의 일부입니다. 파운드 기호는 PL/SQL의 식별자 (테이블/열 이름)에서 허용되는 부분입니다. here

    관련 문제