Hiển thị kết quả từ 1 đến 10 / 10
Chủ đề: [Q] SQL Server .Vs Oravle
-
27-11-2002 14:06 #1
[Q] SQL Server .Vs Oravle
Ở trong store procedure của SQL Server chỉ cần câu lệnh:
SELECT * INTO #GLMMTMP FROM GLMAST
thì SQL Server sẽ tự tạo ra một bảng ảo GLMMTMP, sau khi kết thúc store thì sẽ tự xoá bảng đó đi.
Xin các bạn chỉ giúp trong oracle thì có giải pháp nào tương đương không?
-
29-11-2002 10:35 #2
Trong store của Oracle8i chỉ tồn tại khái niệm Cursor implicit và Explict có chức năng tương đương là tạo ra một kiểu dữ liệu có cấu trúc giống một câu lệnh select mà ta tạo ra. Có thể duyệt dọc.
Tôi nghe nói hình như trên Oracle 9i có hỗ trợ câu lệnh như vậy nhưng chưa thử qua hoặc thấy ví dụ nào, Hi vọng có thể trả lời sớm hơn. Các cursor của Oracle 9i có thể duyệt ngược được(đã được thử nghiêm)
Ngoài ra trong Oracle có một loại bảng TEMPORARY cho phép dữ liệu chỉ sử dụng trong một transaction hoặc trong một session.
-
01-12-2002 20:57 #3
Cám ơn bạn, tôi đã thử loại bảng Global Temporary rồi và thấy nó khá hiệu quả, nhưng khi lựa chọn option ON COMMIT PRESERVE thì khi chạy lệnh COMMIT thì không thấy dữ liệu trong bảng temporary này tự xoá dữ liệu, chỉ khi đóng hẳn SQLPlus thì data trong bảng mới được xóa, vậy bạn có thể giải thích cho tôi về sự khác biệt giữa transaction và session trong Oracle được không? Cám ơn nhiều
Được sửa bởi Ara lúc 21:01 ngày 01-12-2002
-
02-12-2002 10:57 #4
Tùy chọn của bạn là dữ liệu tồn tại trong cae session, nếu muốn nó chỉ tồn tại trong một transaction thì phải dùng tuỳ chọn là ON COMMIT DELETE ROWS khi tạo bảng này.
-
02-12-2002 11:04 #5
Ta có thể hiểu một session là một quá trình từ lúc connect vào CSDL đến khi disconnect hoặc chuyển sang sử dụng với user khác nhưng vẫn dùng chương trình đó.
Sử dụng lệnh :
Select usrenv('sessionid') from dual; để biết số session của mình.
Trong một session ta có thể có nhiều transaction. Được tính từ lúc ta bắt đầu thực hiện một lệnh DML đến lúc ta thực hiện lệnh rollback hoặc commit.
-
02-12-2002 12:06 #6
Cám ơn Ctrl_Alt_Del nha.
-
13-12-2002 15:30 #7
Có vấn đề gì không khi mà declare một cursor trỏ đến temporary table?
-
14-12-2002 13:30 #8
không ảnh hưởng gì cả vì ta có được cấu trúc đúng và dữ liệu của ta trong bảng temporary luôn consistency.
-
14-12-2002 17:56 #9
Vậy temporary table có tối ưu không, khi mà cứ phải tạo ra một bảng có cấu trúc giống với cấu trúc của một recordset mà ta muốn procedure trả về?.
-
15-12-2002 10:14 #10
Vậy thì bạn cứ dùng cursor của PLSQL là xong vừa không phải tạo bảng, chỉ cần tối ưu bộ nhớ cho nó đừng load cả cái bảng to tướng là được


Quote
Bookmarks