반응형
SQL Server의 OUTPUT INSERT.*에 해당하는 Oracle이 있습니까?
SQL 서버에서 다음과 같은 작업을 수행할 수 있습니다.
INSERT INTO some_table (...) OUTPUT INSERTED.*
VALUES (...)
따라서 임의의 열/값 집합을 삽입하고 결과를 반환할 수 있습니다.오라클에서 이 작업을 수행할 수 있는 방법이 있습니까?
제가 생각할 수 있는 최선은 다음과 같습니다.
INSERT INTO some_table (...)
VALUES (...)
RETURNING ROWID INTO :out_rowid
...:out_rowid를 바인딩 변수로 사용합니다.다음과 같은 두 번째 쿼리를 사용합니다.
SELECT *
FROM some_table
WHERE ROWID = :rowid
...하지만 삽입한 열뿐만 아니라 열 내의 모든 것을 반환하는 것과 완전히 같지는 않습니다.
많은 PL/SQL을 사용하지 않고 가능하면 하나의 쿼리만으로 이 작업을 수행할 수 있는 더 좋은 방법이 있습니까?
제가 질문을 이해하지 못할 수도 있지만, 이렇게 하면 되지 않을까요?(복귀를 원하는 것이 무엇인지 알아야 합니다.)
INSERT INTO some_table (...)
VALUES (...)
RETURNING some_column_a, some_column_b, some_column_c, ... INTO :out_a, :out_b, :out_c, ...
@다행 삽입을 위해 대량 수집을 에 반환하는 빈센트는 모든 사람과 함께 작업합니다(즉, 컬렉션에서 "결과"를 삽입하는 경우 다른 항목으로 검색할 수 있습니다).
그RETURNING
절은 BULK COLLECT IN 신택스를 지원합니다.고려(10g):
SQL> CREATE TABLE t (ID NUMBER);
Table created
SQL> INSERT INTO t (SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 5);
5 rows inserted
SQL> DECLARE
2 TYPE tab_rowid IS TABLE OF ROWID;
3 l_r tab_rowid;
4 BEGIN
5 UPDATE t SET ID = ID * 2
6 RETURNING ROWID BULK COLLECT INTO l_r;
7 FOR i IN 1 .. l_r.count LOOP
8 dbms_output.put_line(l_r(i));
9 END LOOP;
10 END;
11 /
AADcriAALAAAAdgAAA
AADcriAALAAAAdgAAB
AADcriAALAAAAdgAAC
AADcriAALAAAAdgAAD
AADcriAALAAAAdgAAE
다중 행과 함께 작동합니다.UPDATE
그리고.DELETE
내 버전(10.2.0.3.0)을 사용하지만 사용하지 않음INSERT
:
SQL> DECLARE
2 TYPE tab_rowid IS TABLE OF ROWID;
3 l_r tab_rowid;
4 BEGIN
5 INSERT INTO t (SELECT ROWNUM FROM dual CONNECT BY LEVEL <= 5)
6 RETURNING ROWID BULK COLLECT INTO l_r;
7 FOR i IN 1 .. l_r.count LOOP
8 dbms_output.put_line(l_r(i));
9 END LOOP;
10 END;
11 /
ORA-06550: line 7, column 5:
PL/SQL: ORA-00933: SQL command not properly ended
아마도 당신은 더 최신 버전(11g?)과BULK COLLECT INTO
다중 행에 대해 지원됨INSERT
s?
언급URL : https://stackoverflow.com/questions/1074843/is-there-an-oracle-equivalent-to-sql-servers-output-inserted
반응형
'programing' 카테고리의 다른 글
RPATH는 사용하고 RUNPATH는 사용하지 않습니까? (0) | 2023.07.20 |
---|---|
Firebase의 childEventListener가 모든 데이터 로드를 완료했는지 확인합니다. (0) | 2023.07.20 |
장고 모델에서 외부 키 필드를 선택적으로 만드는 방법은 무엇입니까? (0) | 2023.07.20 |
파이썬: 삐 소리 내기 (0) | 2023.07.20 |
점과 일치하는 정규식 (0) | 2023.07.20 |