나는 오라클에서 여러 테이블을 만든하지만 예를 들어 쿼리USER_TABLES 오라클
select * from user_tables where table_name='temp';
을 사용하여 찾을 수 없습니다하지만 테이블 임시 내가 그것을 확인, 존재 확신 해요.
나는 오라클에서 여러 테이블을 만든하지만 예를 들어 쿼리USER_TABLES 오라클
select * from user_tables where table_name='temp';
을 사용하여 찾을 수 없습니다하지만 테이블 임시 내가 그것을 확인, 존재 확신 해요.
테이블 이름은 user_tables에서 대문자 여야합니다.
select * from user_tables where table_name='TEMP';
예 :
SQL> create table bogus (name varchar2(10));
Table created.
SQL> select table_name from user_Tables where table_name = 'bogus';
no rows selected
SQL> select table_name from user_Tables where table_name = 'BOGUS';
TABLE_NAME
------------------------------
BOGUS
는 ***이이 답변의 코멘트 섹션에서 말한 것의 조금을 설명하는 편집이다. 즉, 오라클에서 대소 문자가 혼합 된 대/소문자를 생성 할 수 있지만 참조 할 때마다 개체 이름을 큰 따옴표로 묶어야하는 문제가 발생합니다.
예제
SQL> create table "bogus" (name varchar2(10));
Table created.
SQL> select table_name from user_tables where table_name = 'BOGUS';
no rows selected
SQL> select table_name from user_tables where table_name = 'bogus';
TABLE_NAME
------------------------------
bogus
SQL> select * from bogus;
select * from bogus
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> select * from "bogus";
no rows selected
SQL>
CREATE TABLE은 실제로이 작업을 수행합니다 :'create table "BOGUS"("NAME"varchar2 (10));'- 우리는 (all) 위 응답 에서처럼 암시 적으로 변환 된 명령의 리터럴을 계속 사용합니다. 문제는 초보자가 혼란 스러울 수 있다는 것입니다. – tvCa
이 시도 : 달리
select * from user_tables where upper(table_name)=upper('temp');
당신 말이 맞아요, 지적 해 주셔서 고마워요. 나는 내 대답을 편집했다. – pksnj
을'TABLE' 명령을 CREATE, 영업에 사용 된'SELECT' 명령은 테이블없이 지정 될 수 없습니다 인용 부호. 그것은'SELECT' 문이 단지 순수한 데이터를 나열하기 때문입니다. 정말 테이블 이름이라는 것을 알지 못합니다. 그것은 사람의 이름, 물건 이름, 뭐든지 될 수 있습니다. 따라서 작은 따옴표를 사용해야합니다 ... 그러나 작은 따옴표를 사용하는 경우 대소 문자가 일치해야합니다. 그리고 데이터베이스 테이블은 Oracle에서는 기본적으로 대문자입니다. 테이블을 대문자로하는'CREATE TABLE' 커맨드에서는 따옴표를 사용하지 않았을 것입니다. – tvCa