두 테이블을 조인하여 쿼리, 그래서 나는 다음과 같은 쿼리를 사용하고 있습니다 :삭제 비용 효율적 방법
delete from table_a
where objectname in
(Select object_name from table_b where resolved='Y');
는 이제 Select object_name from table_b where resolved='Y'
쿼리가 4 개 백만 이상의 레코드를 반환됩니다 따라서 실행에 많은 시간이 걸릴 것입니다. 나는 비용 효율적인 방법으로 그것을 쓰려고 노력하고있다.
SQL Error: ORA-00911: invalid character 00911. 00000 - "invalid character" *Cause: identifiers may not start with any ASCII character other than letters and numbers. $#_ are also allowed after the first character. Identifiers enclosed by doublequotes may contain any character other than a doublequote. Alternative quotes (q'#...#') cannot use spaces, tabs, or carriage returns as delimiters. For all other contexts, consult the SQL Language Reference Manual.
이 도와주세요 :
DELETE FROM table_a
WHERE EXISTS (SELECT 1 FROM table_b WHERE object_name= objectname AND RESOLVED = ‘Y’)
AND ROWNUM < 10000;
는하지만 오류가있을 것 같습니다!
* "오류가있는 것 같습니다."* 정확히 어떤 오류가 발생합니까? –
SQL 오류 : ORA-00911 : 유효하지 않은 문자 00911. 00000 - "유효하지 않은 문자" * 원인 : 식별자는 문자 및 숫자 이외의 ASCII 문자로 시작할 수 없습니다. 첫 번째 문자 뒤에 $ # _도 사용할 수 있습니다. 이중 인용 부호로 묶인 식별자는 이중 인용 부호 이외의 문자이면 을 포함 할 수 있습니다. 대체 인용 부호 (q '# ... #')은 공백, 탭 또는 캐리지 리턴을 구분 기호로 사용할 수 없습니다. 다른 모든 문맥에 대해서는 SQL 언어 Reference Manual을 참조하십시오. – Ankit
아마도 재미있는 따옴표로 인해 : 'Y'. 첫 번째 예제와 같이''Y ''로 시도하십시오. –