Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle Sql:Thủ tục có thể tạo các bảng tạm thời bên trong nó

Tại sao bạn muốn tạo một bảng tạm thời trong một thủ tục được lưu trữ ngay từ đầu?

Việc tạo các bảng tạm thời trong các cơ sở dữ liệu khác là tương đối phổ biến (ví dụ:SQL Server và MySQL). Rất hiếm khi làm điều tương tự trong Oracle. Trong hầu hết mọi trường hợp bạn muốn tạo một bảng tạm thời trong Oracle, có một cách tiếp cận kiến ​​trúc tốt hơn. Có một chủ đề trên ngăn xếp DBA thảo luận về lựa chọn thay thế cho bảng tạm thời và tại sao chúng không được sử dụng phổ biến trong Oracle.

Theo chương trình, bạn có thể tạo các đối tượng bằng cách sử dụng SQL động

CREATE OR REPLACE PROCEDURE dont_do_this
AS
BEGIN
  EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE a( id INTEGER )';
END;

Tuy nhiên, nếu bạn tạo một bảng tạm thời động, mọi tham chiếu đến bảng đó cũng sẽ cần phải thông qua SQL động - bạn sẽ không thể viết SELECT đơn giản các câu lệnh chống lại bảng. Và định nghĩa của một bảng tạm thời trong Oracle là toàn cầu nên nó được hiển thị cho mọi phiên. Nếu bạn có hai phiên khác nhau cùng cố gắng tạo cùng một bảng, phiên thứ hai sẽ gặp lỗi. Nếu bạn mong đợi bảng có một định nghĩa khác trong các phiên khác nhau, bạn thậm chí còn gặp nhiều vấn đề hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL - lấy số ngày giữa hai ngày trong một tháng cụ thể

  2. làm thế nào để chuyển đổi một chuỗi ngày thành định dạng ngày trong oracle10g

  3. Làm cách nào để tôi có thể truy vấn hiệu quả các nhóm ngày liền nhau trong tập dữ liệu của mình?

  4. Nhà phát triển SQL sẽ không bắt đầu

  5. Gọi một truy vấn Oracle được tham số hóa từ ADODB trong ASP Cổ điển