tôi đề cập đến stackoverflow
câu trả lời này:Làm thế nào tôi có thể chọn từ danh sách các giá trị trong Oracle
How can I select from list of values in SQL Server
Làm thế nào một cái gì đó tương tự có thể được thực hiện trong Oracle?
Tôi đã xem các câu trả lời khác trên trang này sử dụng UNION
và mặc dù phương pháp này hoạt động về mặt kỹ thuật, nhưng đó không phải là những gì tôi muốn sử dụng trong trường hợp của mình.
Vì vậy, tôi muốn giữ nguyên cú pháp mà nhiều hoặc ít trông giống như danh sách giá trị được phân cách bằng dấu phẩy.
CẬP NHẬTvề create type table
answer:
Tôi có một bảng:
CREATE TABLE "BOOK"
( "BOOK_ID" NUMBER(38,0)
)
tôi sử dụng kịch bản này nhưng nó không chèn thêm bất kỳ hàng vào BOOK
bảng:
create type number_tab is table of number;
INSERT INTO BOOK (
BOOK_ID
)
SELECT A.NOTEBOOK_ID FROM
(select column_value AS NOTEBOOK_ID from table (number_tab(1,2,3,4,5,6))) A
;
Kết quả tập lệnh:
TYPE number_tab compiled
Warning: execution completed with warning
Nhưng nếu tôi sử dụng kịch bản này nó chèn hàng mới đến BOOK
bảng:
INSERT INTO BOOK (
BOOK_ID
)
SELECT A.NOTEBOOK_ID FROM
(SELECT (LEVEL-1)+1 AS NOTEBOOK_ID FROM DUAL CONNECT BY LEVEL<=6) A
;
Nó hoạt động ...! và đó là những gì tôi đang tìm kiếm. Nếu bạn có thể tìm ra lý do tại sao câu trả lời của Tony Andrews (http://stackoverflow.com/questions/10353969/how-can-i-select-from-list-of-values-in-oracle/10354083#10354083) cho tôi một cảnh báo và không tạo ra sự chèn - xin vui lòng cho tôi biết. – rapt
cảm ơn! làm việc cho tôi trên orcl 11g. tôi không thể không tự hỏi làm cách nào họ nghĩ ra những cái tên này? odcinumberlist vs dbms_debug_vc2coll không ai trong số này dường như nghĩ ra ở tất cả –
@SonicSoul bởi vì không ai trong số họ thực sự có nghĩa là sử dụng "bình thường" như trong câu trả lời của tôi ở trên. ODCI là viết tắt của giao diện hộp mực dữ liệu oracle, dbms_debug_vc2_coll có nghĩa là được sử dụng với gói DBMS_DEBUG. –