Tôi đang làm việc với cơ sở dữ liệu Oracle 10g và tôi muốn trích xuất một nhóm bản ghi từ một bảng, sau đó sử dụng nó để kéo các bản ghi ra khỏi một loạt các bảng có liên quan.Tạo bảng tạm thời trong PL/SQL
Nếu đây là T-SQL, tôi muốn làm điều đó một cái gì đó như thế này:
CREATE TABLE #PatientIDs (
pId int
)
INSERT INTO #PatientIDs
select distinct pId from appointments
SELECT * from Person WHERE Person.pId IN (select pId from #PatientIDs)
SELECT * from Allergies WHERE Allergies.pId IN (select pId from #PatientIDs)
DROP TABLE #PatientIDs
Tuy nhiên, tất cả các trang hữu ích tôi nhìn vào làm này giống như làm việc nhiều hơn nó có thể có thể được, vì vậy tôi nghĩ rằng tôi phải thiếu một cái gì đó hiển nhiên.
(BTW, thay vì chạy điều này dưới dạng một tập lệnh, có thể tôi sẽ mở phiên trong Oracle SQL Developer, tạo bảng tạm thời, sau đó chạy từng truy vấn, xuất chúng sang CSV khi tôi đi theo. công việc đó?)
Cảm ơn!
Tại sao bạn cần bước bảng tạm thời? Bạn chỉ thay thế một lựa chọn với một lựa chọn khác. Là lựa chọn ban đầu rất tốn kém - Hoặc là nó trong trường hợp một giao dịch đồng thời thay đổi mọi thứ? –
Oracle không phải là SQL Server và các tình huống mà chúng ta cần sử dụng các bảng tạm thời thực sự không phổ biến. Vui lòng đọc câu trả lời của tôi cho câu hỏi tương tự này: http://stackoverflow.com/questions/1192265/local-temporary-table-in-oracle-10-for-the-scope-of-stored-procedure/1193443#1193443 – APC
Tôi đơn giản hóa - những gì tôi thực sự cố gắng làm là lấy 100 bệnh nhân cuối cùng (trừ một chút trùng lặp). Nhưng nói chuyện dưới đây khiến tôi nhớ rằng tôi có thể lấy 100 bệnh nhân bắt đầu lúc nửa đêm sáng nay, và không phải lo lắng về việc SYSDATE thay đổi khi tôi đi cùng. :-) – SarekOfVulcan