[SQL] ORA-00907은 오른쪽 괄호 문제를 누락 - 내부에 삽입 쿼리에 의해 주문 선택
SQLORA-00907은 오른쪽 괄호 문제를 누락 - 내부에 삽입 쿼리에 의해 주문 선택
나는 테이블에 삽입 할 시도하고 그것은 하나 개의 컬럼에 대해 하나의 SELECT 문을 사용합니다. 다음은 내 쿼리의 그림입니다.
INSERT INTO MY_TBL (MY_COL1, MY_COL2)
VALUES (
(SELECT DATA FROM FIR_TABL WHERE ID = 1 AND ROWNUM = 1 ORDER BY CREATED_ON DESC),
1
);
그것은 바로 괄호를 누락 ORA-00907가 발생합니다. 나는이에서 ORDER BY를 제거 할 경우, 예상대로 작동합니다. 그러나 나는 그것을 주문할 필요가있다. 어떻게 그것을 해결할 수 있습니까?
해결법
-
==============================
1.모두 현재의 대답은 동일한 쿼리에 의한 순서와 ROWNUM을 사용하는 것은 본질적으로 위험하다는 사실을 무시합니다. 당신은 당신이 원하는 데이터를 얻을 것이다 절대적으로 보장 할 수 있습니다. 당신이 정렬 된 쿼리의 첫 번째 행을 원하는 경우에 당신은 하위 쿼리를 사용해야합니다 :
모두 현재의 대답은 동일한 쿼리에 의한 순서와 ROWNUM을 사용하는 것은 본질적으로 위험하다는 사실을 무시합니다. 당신은 당신이 원하는 데이터를 얻을 것이다 절대적으로 보장 할 수 있습니다. 당신이 정렬 된 쿼리의 첫 번째 행을 원하는 경우에 당신은 하위 쿼리를 사용해야합니다 :
insert into my_tbl ( col1, col2 ) select data, 'more data' from ( select data from fir_tabl where id = 1 order by created_on desc ) where rownum = 1 ;
당신은 당신이 RNK = 1이 개 값으로 끝날 것 동일했다 두 created_on 날짜가 있다면하지만 당신은 또한 당신이 원하는 방법으로 데이터를 주문 계급과 같은 기능을 사용할 수 있습니다.
insert into my_tbl ( col1, col2 ) select data, 'more data' from ( select data , rank() over ( order by created_on desc ) as rnk from fir_tabl where id = 1) where rnk = 1 ;
-
==============================
2.키워드 값을 사용하는 경우는 SELECT를 사용하지 않습니다. 대신 사용 :
키워드 값을 사용하는 경우는 SELECT를 사용하지 않습니다. 대신 사용 :
INSERT INTO MY_TBL (MY_COL) SELECT DATA FROM FIR_TABL WHERE ID = 1 ORDER BY CREATED_ON DESC ;
수정 된 쿼리는 같을 것이다 :
INSERT INTO MY_TBL (MY_COL1, MY_COL2) SELECT DATA, 1 FROM FIR_TABL WHERE ID = 1 AND ROWNUM = 1 ORDER BY CREATED_ON DESC ;
-
==============================
3.를 삽입 할 때, 데이터를하지 추출 할 때 그 순서가 수행해야합니다 동의합니다.
를 삽입 할 때, 데이터를하지 추출 할 때 그 순서가 수행해야합니다 동의합니다.
그러나 해결 방법으로, 다른 SELECT에 전체 SELECT를 incapsulating 삽입에서 ORDER BY 절을 분리 할 수있다.
이 오류를 방지 할 수 있습니다 :
INSERT INTO MY_TABLE ( SELECT * FROM ( SELECT columns FROM table ORDER BY clause ) )
from https://stackoverflow.com/questions/9175749/ora-00907-missing-right-parenthesis-issue-select-with-order-by-inside-insert-q by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 바인드 SQL 2005에서 함수에 열 기본값 (0) | 2020.07.13 |
---|---|
[SQL] ASP.NET을 사용하여 모든 이미지를 선택 (0) | 2020.07.13 |
[SQL] MS 액세스 쿼리에서 날짜를 문자열로 변환 (0) | 2020.07.13 |
[SQL] 매개 변수를 사용하여 SQL 쿼리에서 와일드 카드를 사용하는 방법 (0) | 2020.07.13 |
[SQL] 모든 열이 NULL이 있는지 확인하는 빠른 방법이 있나요? (0) | 2020.07.13 |