필자가 아는 한 (내가 틀렸다면 나에게 맞춰라.) ODBC 테이블 이름은 대소 문자를 구분하지 않는다. 반면, 약간의 인터넷 검색은 카탈로그 및 스키마 이름이 대소 문자를 구분하는지 여부를 파악하는 데 나에게 도움이되지 못했습니다.ODBC의 카탈로그 및 스키마 이름은 대소 문자를 구분합니까?
누구나이 사양에 연결할 수 있습니까?
필자가 아는 한 (내가 틀렸다면 나에게 맞춰라.) ODBC 테이블 이름은 대소 문자를 구분하지 않는다. 반면, 약간의 인터넷 검색은 카탈로그 및 스키마 이름이 대소 문자를 구분하는지 여부를 파악하는 데 나에게 도움이되지 못했습니다.ODBC의 카탈로그 및 스키마 이름은 대소 문자를 구분합니까?
누구나이 사양에 연결할 수 있습니까?
ODBC에서 대소 문자를 구분하지 않는 테이블 이름에 의존해서는 안됩니다. ODBC SQLGetInfo 호출을 사용하면 대소 문자가 구분되는지, 대문자인지 소문자인지 알 수 있습니다. 일부 데이터베이스/드라이버는 테이블을 인용 할 때 대/소문자를 유지합니다. 당신은 대소 문자를 구분 테이블 이름을 찾을 수 있습니다 MS SQL 서버에서
하지만 오라클에서 당신은하지 않습니다 : 이 가 가은 무엇 오라클이 실제로하는 일은 대문자 인용되지 않은 테이블 이름입니다
create table "fred" (a integer)
insert into "fred" values (1);
select * from fred
[S0002][unixODBC][Oracle][ODBC][Ora]ORA-00942: table or view does not exist
select * from "fred"
+-----------------------------------------+
| A |
+-----------------------------------------+
| 1 |
+-----------------------------------------+
select * from "FRED"
[S0002][unixODBC][Oracle][ODBC][Ora]ORA-00942: table or view does not exist
:
이
SQL> create table fred (a integer)
SQLRowCount returns -1
SQL> insert into fred values (1)
SQLRowCount returns 1
SQL> select * from fred
+-----------------------------------------+
| A |
+-----------------------------------------+
| 1 |
+-----------------------------------------+
SQLRowCount returns -1
1 rows fetched
SQL> select * from "FRED"
+-----------------------------------------+
| A |
+-----------------------------------------+
| 1 |
+-----------------------------------------+
SQLRowCount returns -1
1 rows fetched
SQL> select * from "fred"
[S0002][unixODBC][Oracle][ODBC][Ora]ORA-00942: table or view does not exist
동일 적용 스키마 및 카탈로그 이름. SQLGetInfo를 살펴보면 드라이버가 무엇을하는지에 대해 알려줄 것입니다. SQL_IDENTIFIER_CASE 및 SQL_IDENTIFIER_QUOTE_CHAR을 찾습니다. 은 "SQL-92의 식별자는 대소 문자를 구분 적이 없기 때문에 지원으로, SQL-92 (모든 레벨)을 엄격하게 준수하는 드라이버가 SQL_IC_SENSITIVE 옵션을 반환하지 않습니다."의
http://msdn.microsoft.com/en-us/library/ms711681(v=vs.85).aspx
를 적어 둡니다.