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

SQL Server / Oracle:Các bảng tạm thời riêng tư

Như bạn đã phát hiện ra các bảng tạm thời của SQL Server và Oracle về cơ bản là khác nhau.

Trong Oracle, các bảng tạm thời toàn cầu là các đối tượng vĩnh viễn lưu trữ dữ liệu phiên cụ thể (hoặc giao dịch cụ thể) tạm thời.

Trong SQL Server, bảng tạm thời là các đối tượng tạm thời lưu trữ dữ liệu tạm thời, với #temp_tables lưu trữ dữ liệu cục bộ cho một phiên và ## temp_tables lưu trữ dữ liệu toàn cục. (Tôi chưa bao giờ có nhu cầu về bảng tạm thời toàn cục của SQL Server và không biết chúng giải quyết vấn đề gì.) Nếu #temp_table được tạo trong một thủ tục được lưu trữ, nó sẽ bị xóa khi thủ tục đã lưu trữ thoát. Nếu không, nó sẽ bị loại bỏ khi phiên đóng cửa.

Và không, thực sự không có cách nào để làm cho SQL Server bắt chước Oracle. Bạn có thể sử dụng một bảng bình thường với một cột bổ sung lưu trữ ID phiên. Nhưng bạn sẽ không nhận được lợi thế của bảng tạm đối với việc ghi nhật ký ít hơn. Bạn sẽ phải xóa dữ liệu tạm thời theo cách thủ công. Và đối phó với việc dọn dẹp các phiên bị ngừng hoạt động sớm.

CHỈNH SỬA: Một sự khác biệt khác giữa Oracle và SQL Server là SQL Server cho phép DDL được bao bọc trong một giao dịch với các câu lệnh khác. Vì vậy, nếu bạn cần sử dụng bảng tạm thời như một phần của giao dịch lớn hơn, hãy create table #table_name... câu lệnh sẽ không hoàn toàn cam kết giao dịch hiện tại như create table câu lệnh would trong Oracle.



  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 SELECT WHERE giá trị tồn tại hoặc không tồn tại

  2. Cách kiểm tra Oracle Client được cài đặt hay không là điều kiện tiên quyết để cài đặt thành phần

  3. cài đặt và cấu hình OCI8 để kết nối oracle với php

  4. Lỗi SQL:ORA-00913:quá nhiều giá trị

  5. 2 cách để lấy số phút từ giá trị ngày giờ trong cơ sở dữ liệu Oracle