Oracle 오류: ORA-00905:키워드 누락
SQL 행을 계산하는 중:
SELECT *
INTO assignment_20081120
FROM assignment ;
assignment라는 테이블을 백업하는 오라클의 데이터베이스에 대해 다음 오류가 발생합니다. ORA-00905:키워드 누락
단 하나의 행이 있는 경우를 제외하고는ASSIGNMENT
테이블과ASSIGNMENT_20081120
로컬 PL/SQL 변수 유형입니다.ASSIGNMENT%ROWTYPE
이것은 당신이 원하는 것이 아닙니다.
새 테이블을 만들고 기존 데이터를 해당 새 테이블에 복사하려고 한다고 가정합니다.
CREATE TABLE assignment_20081120
AS
SELECT *
FROM assignment
먼저, 나는 생각했습니다:
"...Microsoft SQL Server에서
SELECT...INTO
새 테이블은 자동으로 생성되는 반면 오라클은 사용자가 새 테이블을 실행하기 전에 수동으로 생성해야 합니다.SELECT...INTO
진술..."
그러나 테이블을 수동으로 생성한 후에도 여전히 작동하지 않고 "키워드 누락" 오류가 표시됩니다.
그래서 이번에는 포기하고 먼저 수동으로 테이블을 만든 다음 "클래식"을 사용하여 해결했습니다.SELECT
문:
INSERT INTO assignment_20081120 SELECT * FROM assignment;
예상대로 작동했습니다.만약 누군가가 어떻게 사용하는지에 대한 설명을 생각해 낸다면,SELECT...INTO
정확한 방법으로, 나는 행복할 것입니다!
아래와 같은 PLSQL 블록 내에서 select를 사용할 수 있습니다.
Declare
l_variable assignment%rowtype
begin
select *
into l_variable
from assignment;
exception
when no_data_found then
dbms_output.put_line('No record avialable')
when too_many_rows then
dbms_output.put_line('Too many rows')
end;
이 코드는 할당에 정확히 하나의 행이 있을 때만 작동합니다.일반적으로 이러한 코드를 사용하여 키 번호로 식별되는 특정 행을 선택합니다.
Declare
l_variable assignment%rowtype
begin
select *
into l_variable
from assignment
where ID=<my id number>;
exception
when no_data_found then
dbms_output.put_line('No record avialable')
when too_many_rows then
dbms_output.put_line('Too many rows')
end;
이것은 OP의 정확한 질문과 직접적으로 관련이 없지만 저는 방금 당신의 쿼리에서 오라클 예약 단어를 사용하는 것을 발견했습니다(나의 경우 별칭).IN
)는 동일한 오류를 발생시킬 수 있습니다.
예:
SELECT * FROM TBL_INDEPENTS IN
JOIN TBL_VOTERS VO on IN.VOTERID = VO.VOTERID
또는 필드 이름으로 쿼리 자체에 있는 경우
SELECT ..., ...., IN, ..., .... FROM SOMETABLE
그것은 또한 그 오류를 일으킬 것입니다.이것이 누군가에게 도움이 되길 바랍니다.
오라클 데이터베이스의 테이블을 백업하는 경우.아래 문장을 사용해 보십시오.
CREATE TABLE name_table_bk
AS
SELECT *
FROM name_table;
Oracle Database 12c를 사용하고 있습니다.
답이 늦었지만, 저는 오늘 이 목록에 방금 올라왔어요!
CREATE TABLE assignment_20101120 AS SELECT * FROM assignment;
마찬가지입니다.
언급URL : https://stackoverflow.com/questions/305568/oracle-error-ora-00905-missing-keyword
'code' 카테고리의 다른 글
gitgrep 검색에서 특정 디렉터리/파일을 제외하는 방법 (0) | 2023.06.22 |
---|---|
PowerShell에서 "@" 기호는 무엇을 합니까? (0) | 2023.06.22 |
VB.net 을 사용하여 Excel의 범위에 있는 셀에서 테두리를 제거하는 방법은 무엇입니까? (0) | 2023.06.17 |
Firestore가 하나의 쿼리를 사용하여 조건에 맞는 여러 문서를 업데이트할 수 있습니까? (0) | 2023.06.17 |
C에서 #error 지시어의 용도는 무엇입니까? (0) | 2023.06.17 |