[SQL Plus] (https://docs.oracle.com/cd/B19306_01/server.102/b14357/qstart.htm) là một công cụ tương tác được cài đặt với mọi cài đặt Oracle hiện đại. SQL Plus cho phép bạn vượt ra ngoài các truy vấn cơ sở dữ liệu tiêu chuẩn với lô, tập lệnh và tính toán ngoài phạm vi thông thường của Oracle.
Thậm chí có thể, như chúng ta sẽ khám phá bên dưới - để tạo các tệp văn bản, chẳng hạn như .csv
, sử dụng kết quả của một truy vấn cơ sở dữ liệu cụ thể.
Khởi chạy SQL * Plus
Tùy thuộc vào cài đặt Oracle của bạn, bạn có thể có quyền truy cập vào một trong nhiều phiên bản hoặc “chế độ” khác nhau để chạy ứng dụng SQL * Plus.
Dòng lệnh SQL * Plus
Nếu bạn muốn sử dụng SQL*Plus Command-line
, bạn sẽ chỉ cần phát hành sqlplus
lệnh từ trình bao của bạn:
$ sqlplus
Điều này sẽ cố gắng kết nối bạn với mặc định cơ sở dữ liệu và bạn sẽ được nhắc nhập thông tin đăng nhập để xác thực chính mình.
Trong trường hợp bạn cần kết nối với database
khác hoặc sử dụng một user
khác (schema
), hãy thử cách sau, thay thế các giá trị của riêng bạn nếu cần:
$ sqlplus schema@//machine.domain:port/database
iSQL * Plus
Nếu bạn có quyền truy cập vào nó, bạn có thể muốn sử dụng iSQL*Plus
, là phiên bản dựa trên trình duyệt của công cụ dòng lệnh SQL * Plus.
Điều này được thực hiện bằng cách chỉ cần truy cập URL iSQL*Plus
cho cơ sở dữ liệu và cài đặt của bạn. URL chính xác sẽ khác nhau, nhưng thường có định dạng sau:http://machine_name.domain:port/isqlplus
SQL * Plus dành cho Windows
Nếu bạn đang sử dụng Windows, cũng có phiên bản Windows GUI của SQL * Plus, phiên bản này thường có thể được khởi chạy từ menu bắt đầu của bạn:Start > Programs > Oracle > Application Development > SQL Plus
.
Xuất Truy vấn thành tệp
Bây giờ bạn đã kết nối với SQL * Plus, chúng tôi có thể bắt đầu tạo tệp của mình.
Sửa đổi cấu hình SQL * Plus
Bước đầu tiên là định cấu hình một số cài đặt hệ thống SQL * PLus bằng cách sử dụng SET
tuyên bố.
Đối với ví dụ này, chúng tôi sẽ thay đổi thủ công các cài đặt này một lần trước khi truy vấn và tạo tệp của chúng tôi, nhưng nếu muốn, bạn có thể thay đổi cài đặt mặc định của các cài đặt khác nhau trong User Profile
của mình , nằm trong login.sql
tệp.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
Một số cài đặt đầu tiên mà bạn thường không muốn thay đổi, nhưng chúng tôi sẽ giải thích ngắn gọn những gì mỗi cài đặt đạt được.
-
colsep
là ký tự phân tách được sử dụng để tách các cột của bạn. Đối với một.csv
tệp, đây là một dấu phẩy đơn giản. -
headsep
là ký tự phân cách cho hàng tiêu đề (nếu bạn yêu cầu). Trong ví dụ này, chúng tôi không xuất hàng tiêu đề, vì vậy chúng tôi sẽ bỏoff
. -
pagesize
là số dòng "trên mỗi trang." Đây là một cài đặt hơi cổ điển nhằm mục đích in mà không có quá nhiều dòng trên mỗi trang. Với giá trị0
, chúng tôi không sử dụng các trang vì chúng tôi đang xuất ra một tệp. Nếu bạn chọn hiển thịheader
hàng, đặtpagesize
đến một số lượng rất lớn (lớn hơn số lượng kết quả bản ghi dự kiến trong truy vấn), vì vậy hàng tiêu đề của bạn sẽ chỉ hiển thị một lần thay vì một lần “trên mỗi trang”. -
trimspool
đặt thànhon
chỉ cần loại bỏ khoảng trắng ở cuối.
Bây giờ, hai cài đặt cuối cùng sẽ cần được thay đổi tùy thuộc vào truy vấn của bạn.
set linesize #
set numwidth #
- Đối với
linesize
,#
giá trị phải là tổng số cột đầu ra trong truy vấn kết quả của bạn. -
numwidth
là chiều rộng cột (số khoảng trắng ký tự) được sử dụng khi xuất giá trị số.
Lệnh SPOOL
Lưu ý:SPOOL
lệnh không khả dụng trong phiên bản SQL * Plus dựa trên trình duyệt, iSQL*Plus
. Để tạo tệp trong khi sử dụng iSQL * Plus, hãy thay đổi cài đặt tùy chọn cần thiết để xuất trực tiếp ra tệp.
Với cài đặt của chúng tôi đã được chăm sóc, bây giờ chúng tôi phải yêu cầu SQL * Plus xuất một tệp. Điều này được thực hiện bằng cách sử dụng SPOOL
tuyên bố.
Trong khi SPOOL
đang hoạt động , SQL * PLus sẽ lưu trữ kết quả đầu ra của bất kỳ truy vấn nào vào tệp được chỉ định.
Do đó, lệnh tiếp theo để nhập là spool
:
spool file_path
Bỏ qua một chút về phía trước, sau truy vấn của bạn được chèn, bạn cũng cần dừng spool
vì vậy đầu ra tệp được đóng bằng cách sử dụng spool off
lệnh:
spool off
Chèn Truy vấn
Bước cuối cùng sau khi cài đặt được sửa đổi và spool
đang chạy là để chèn truy vấn của bạn. Đối với ví dụ đơn giản của chúng tôi, chúng tôi đang xuất tất cả sách từ books
của chúng tôi bảng.
SELECT
title,
primary_author
FROM
books;
Đừng quên dấu chấm phẩy để đóng câu lệnh truy vấn của bạn, sau đó nhập spool off
đã nói ở trên lệnh.
Vậy là xong, bạn đã tạo một tệp văn bản mới với kết quả truy vấn của mình bằng SQL * Plus.
Mẹo:Sử dụng tệp Script
Thay vì nhập từng dòng theo cách thủ công, bạn nên nhập tất cả các cài đặt vào một tệp tập lệnh mới mà bạn có thể thực thi trong SQL * Plus bằng một lệnh duy nhất.
Tạo tệp tập lệnh mới với EDIT
tuyên bố:
EDIT file_name
Bây giờ dán toàn bộ danh sách lệnh script vào tệp mới của bạn và lưu. Toàn bộ nội dung của tập lệnh mẫu của chúng tôi có thể được tìm thấy bên dưới.
set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5
spool books.csv
SELECT
title,
primary_author
FROM
books;
spool off
Để thực thi tập lệnh, chỉ cần sử dụng @
ký hiệu theo sau là tên tệp:
@file_name
Tập lệnh của bạn sẽ được thực thi và .csv
tệp được tạo như mong đợi.