1. Trang chủ
  2. » Công Nghệ Thông Tin

Đào tạo Oracle cơ bản - Giáo trình kiến trúc và quản trị Oracle 8i - Phần 2 pptx

11 571 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 179,5 KB

Nội dung

- Startup open: Khởi động instance, mount và mở database trong các mode unrestricted mode Cho phép tất cả các user có thể truy nhập, restricted mode Hạn chế với DBA Trong quá trình khởi

Trang 1

4 Quản lý một Oracle Instance

4.1 Start up vμ shut down Oracle Server

Một CSDL Oracle sẽ không sẵn sàng cho tới khi quản trị viên CSDL khởi động Oracle instance và mở

một database Các bước khởi động:

- Khởi động (Start an instance)

- Kết nối với CSDL (Mount the database)

- Mở CSDL (Open the database)

Lệnh khởi động và tắt cơ sở dữ liệu bằng Sqldba (với Oracle 8 là svrmgrl)

Trong sqldba để khởi động database dùng lệnh startup để khởi động Có thể khởi động cơ sở dữ liệu

theo các quá trình tùy thuộc vào tham biên của lênh startup

- Startup nomount: Khởi động instance mà không mount database

- Startup mount: Khởi động instance và mount the database nhưng vẫn đóng nó

- Startup open: Khởi động instance, mount và mở database trong các mode unrestricted mode

(Cho phép tất cả các user có thể truy nhập), restricted mode (Hạn chế với DBA )

Trong quá trình khởi động, Oracle sử dụng các file tham số để lấy các thông số mặc định phục vụ cho

việc khởi tạo Cấp phát vùng nhớ SGA và khởi động các tiến trình nền

Quá trình shut down cũng diễn ra theo ba giai đoạn:

- Đóng CSDL (Close the database)

- Thu hồi kết nối tới CSDL (Dismount the database)

- Dừng (Shut down the database)

Để tắt cơ sở dữ liệu đang hoạt động dùng lệnh shutdown với các tham số normal, immediate, abort

- Shutdown normal: Trong quá trình thực hiện lệnh không có một kết nối mới nào cho phép,

database sẽ đợi cho đến khi các kết nối kết thúc, lần khởi động sau database không yêu cầu

bất cứ một thủ tục hồi phục nào

- Shutdown immediate: Trong quá trình thực hiện lệnh, các lệnh từ phía client đều bị kết thúc,

các kết nối tới database đều bị chấm dứt ngay tức khắc, tất các các thao tác và các xử lý chưa

commit đều bị rolled back

- Shutdown abort: Trong quá trình thực hiện lệnh, các lệnh từ phía client đều bị kết thúc, các

kết nối tới database đều bị chấm dứt ngay tức khắc, tất các các thao tác và các xử lý chưa

commit đều không bị rolled back

4.2 Tạo vμ lưu giữ cấu hình

Các bước tạo và lưu cấu hình:

- Kích hoạt Oracle Enterprise Manager Console

- Truy nhập vào với tên và mật khẩu quản trị hệ thống [sysman]/[manager]@[host]

- Chọn, kích hoạt Oracle Instance Manager trong Oracle Enterprise Manager Console

Trang 2

- Chọn mục innitialization parameters (tham số khởi tạo) trong cây phân cấp Giá trị của tham

số sẽ hiện lên và có thể thay đổi được Lưu giữ lại các thay đổi

- Xác nhận các tham số thay đổi

• Tạo và sử dụng các file tham số

File tham số thường là file initsid.ora, đây là file có khuôn dạng text Mặc định, file này được đặt ở

thư mục có đường dẫn $ORACLE_HOME/dbs đối với hệ điều hành UNIX và đặt ở thư mục

%ORACLE_HOME%\database đối với hệ điều hành Windows NT Trong bản Oracle 8i trên Windows

NT, file này được đặt ở thư mục có đường dẫn %ORACLE_HOME%\admin\sid\pfile

Các thông số trong file này sẽ được đọc vào trong quá trình khởi động Oracle Enterprise Manager

Console hay Instance Manager cho phép DBA có thể xem và sửa các tham số khởi tạo

• Sử dụng các tham số

Các tham số trong file initsid.ora có thể ảnh hưởng tới hiệu quả sử dụng CSDL Các thông số

trong file tham số bao gồm:

• Kích thước của vùng System Global Area (SGA) để tối ưu hiệu suất

• Đặt mặc định cho database và instance

• Đặt các hạn chế đối với user hayprocess

• Đặt các hạn chế đối với tài nguyên CSDL

• Xác định các thuộc tính vật lý của database, như kích thước của block

• Chỉ ra các control files, archived log files, ALERT file, và trace file locations

4.3 Một số quy tắc đối với các tham số

• Các giá trị được chỉ ra theo khuôn dạng: keyword=giá trị

• Tất cả các tham số đều là tuỳ chọn (không bắt buộc)

• Server đều có giá trị mặc định đối với mỗi tham số Các giá trị này là tuỳ theo hệ điều hành và tuỳ

theo tham số

• Các tham số có thể được chỉ ra theo các thứ tự khác nhau

• Phần chú dẫn được bắt đầu bằng ký hiệu #

• Các tham số là ký tự được đặt trong dấu nháy kép

• Cũng có thể included các file bởi từ khoá IFILE

• Các giá trị là tập hợp được đặt trong dấu ngoặc đơn và được ngăn cách nhau bởi dấu phẩy

Một số tham só cơ bản:

BACKGROUND_DUMP_DEST Xác định nơi tiến trình nền đặt các file để ghi vào (LGWR,

DBWn, )

COMPATIBLE Phiên bản Server tương thích với instance, mặc định là 8.1.0

CONTROL_FILES Tên của các control files

Trang 3

DB_BLOCK_BUFFERS Số lượng blocks cached trong SGA

DB_NAME Định danh CSDL từ 8 ký tự trở xuống Tham số này chỉ cần

thiết khi tạo mới một database

SHARED_POOL_SIZE Kích thước của shared pool tính theo đơn vị byte

USER_DUMP_DEST Nơi các file user debugging được tạo thay cho các tiến trình

người sử dụng

Các tham số có thể thay đổi:

IFILE Tên của file tham số được include vào file tham số hiện thời

Cho phép có thể được lồng tối đa là ba cấp

LOG_BUFFER Số byte được cấp phát cho redo log buffer trong SGA

MAX_DUMP_FILE_SIZE Kích thước tối đa của trace files, được xác định bằng số lượng

block của hệ điều hành

PROCESSES Số lượng tối đa các tiến trình hệ điều hành có thể kết nối với

instance

SQL_TRACE Cho phép hoặc không cho phép sử dụng tiện ích SQL trace

đối với mỗi user session

TIMED_STATISTICS Cho phép hoặc không cho phép định thời gian trong các

trace files và trong điều khiển màn hình

Các giai đoạn khởi động và tắt:

Trang 4

5 Tạo CSDL

5.1 Chuẩn bị

• Chuẩn bị hệ điều hành

Đảm bảo có đủ bộ nhớ cho SGA và thực hiện các tiến trình của Oracle một cách hiệu quả Đảm bảo

có đủ vùng không gian trên đĩa để lưu trữ CSDL, các file log, file điều khiển, các file dữ liệu

Cần có kế hoạch bố trí, phân bổ các file: cần ít nhất hai bản sao các file điều khiển, file log của CSDL

và được đặt ở hai nơi khác nhau

Bên cạnh đó, cần xem xét đến tính chất của dữ liệu lưu trữ để từ đó xác định được cấu trúc thích hợp

cho CSDL nhằm: giảm thiểu việc phân đoạn, giảm thiểu nội dung lưu trữ và vẫn phân tách được các

đối tượng

Cần quan tâm tới tổ chức các file hệ thống, làm sao cho vẫn có thể quản lý một cách dễ dàng khi thêm

thêm mới user, tạo mới CSDL,… Việc này có thể thực hiện được nhờ vào kiến trúc tối ưu mềm dẻo

(Optimal Flexible Architecture -OFA)

Cấu trúc OFA:

• ORACLE_BASE: thư mục gốc

• ORACLE_HOME thư mục con chứa phần mềm Oracle software và các dữ liệu

• Phân biệt giữa các product file, các file công cụ và các file cục bộ bằng cách tạo các thư mục

riêng

• Chuẩn bị các file tham số

Việc chẩn bị file tham số cần thiết khi tạo CSDL bằng tay

Đặt SID theo cú pháp: C:\set ORACLE_SID = U16

Sử dụng tiện ích ORADIM để tạo file serrvice, file mật khẩu

C:\>ORADIM -NEW -SID sid [-INTPWD internal_pwd][SRVC svrcname]

[MAXUSERS number][STARTMODE auto,manual][-PFILE filename]

Tạo mới file initSID.ora với các thông số giống như trong file init.ora Thay đổi các thông số trong file

này cho phù hợp

Ví dụ:

db_name = U10

instance_name = U10

service_names = U10

db_files = 1024

control_files =

("C:\ORA815\oradata\U10\control01.ctl",

"C:\ORA815\oradata\U10\control02.ctl")

db_file_multiblock_read_count = 8

db_block_buffers = 2048

shared_pool_size = 4194304

log_checkpoint_interval = 10000

log_checkpoint_timeout = 1800

processes = 50

Trang 5

parallel_max_servers = 5

log_buffer = 32768

Trong các tham số đó, có ít nhất ba tham số cần được khai báo:

• db_name: Tên CSDL Tham số này cần thiết khi tạo mới CSDL với độ dài nhiều nhất 8 ký tự Tên

này phải phù hợp với tên sử dụng trong lệnh CREARE DATABASE

• control_files: danh sách các file điều khiển Danh sách này có ít nhất là 02 file

• b_block_buffers: xác định kích thước của database block Kích thước này sẽ không thể thay

đổi sau khi tạo CSDL

5.2 Tạo CSDL

Có thể tạo CSDL bằng công cụ Database Configuration Assistant hoặc có thể tạo CSDL trực tiếp

bằng tay, thông qua câu lệnh CREATE DATABASE

• Sử dụng Database Configuration Assistant

Database Configuration Assistant cho phép tạo CSDL theo các chế độ:

• Typical: tự động cài đặt một CSDL chuẩn và thiết đặt các file tham số khởi tạo mặc định

• Customer: cho phép người tạo có thể tạo CSDL tuỳ theo ý muốn Ví dụ: người tạo có thể thiết đặt

các file dữ liệu, file điều khiển và file log cho phù hợp Định lại kích thước các vùng tablespace,

extent Đặt các tham số bộ nhớ,

Database Configuration Assistant cho phép chọn môi trường điều hành CSDL

• Xử lý giao dịch trực tuyến (Online transaction processing - OLTP): áp dụng cho hệ thống xử lý

nhiều giao dịch đồng thời (lên đến hàng nghìn, hàng triệu giao dịch đồng thời)

• Hệ thống hỗ trợ quyết định (Decision Support System - DSS): áp dụng cho hệ thống xử lý nhiều

truy vấn phức tạp Cho phép lấy ra một lượng ít bản ghi từ các truy vấn phức tạp

• Tạo CSDL bằng lệnh Script của SQL

Thiết đặt môi trường hệ điều hành: các tham số hệ thống được xác định trong registry của Windows

NT Các tham số hệ thống được đặt trong HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE

Các tham số bao gồm:

• ORACLE_HOME: thư mục cài đặt phần mềm ORACLE

• ORACLE_SID: tên của các Instance của Oracle chạy trên cùng một máy Các tên này cần được

đảm bảo là duy nhất

• ORACLE_BASE: không nhất thiết phải có Tham số này được đưa ra để tương thích với OFA

• ORA_NLS33: Là cần thiết khi tập hợp ký tự sử dụng trong CSDL không phải là US7ASCII

• PATH: đường dẫn tìm kiếm Bao gồm luôn cả ORACLE_HOME\BIN

Các bước tạo CSDL:

ƒ Connect bằng tên và mật khẩu của SYSDBA

ƒ Khởi động Instance (no MOUNT) Ví dụ: SQL>STARTUP NOMOUNT PFILE= initU16.ora

ƒ Tạo CSDL bằng lệnh CREATE DATABASE Ví dụ:

Trang 6

CREATE DATABASE U16

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXLOGHISTORY 100

LOGFILE

GROUP 1 ('/DISK3/log1a.rdo',/DISK4/log1b.rdo’) SIZE 1 M,

GROUP 2 ('/DISK3/log2a.rdo',/DISK4/log2b.rdo’) SIZE 1 M

DATAFILE

'/DISK1/system01.dbf' size 50M autoextend on

CHARACTER SET WE8ISO8859P1;

Cú pháp lệnh CREATE DATABASE:

CREATE DATABASE [database]

[CONTROLFILE REUSE]

[LOGFILE [GROUP integer] filespec

[, [GROUP integer] filespec] ]

[MAXLOGFILES integer]

[MAXLOGMEMBERS integer]

[MAXLOGHISTORY integer]

[MAXDATAFILES integer]

[MAXINSTANCES integer]

[ARCHIVELOG|NOARCHIVELOG]

[CHARACTER SET charset]

[NATIONAL CHARACTER SET charset]

[DATAFILE filespec [autoextend_clause]

[, filespec [autoextend_clause] ]]

filespec :== ’filename’ [SIZE integer][K|M] [REUSE]

autoextend_clause :==

[AUTOEXTEND {OFF

|ON [NEXT integer[K|M]]

[MAXSIZE {UNLIMITED|integer[K|M]}]

}

]

- Database: Tên của CSDL được tạo

- CONTROLFILE REUSE: Tên file tham số đã tồn tại được sử dụng

- LOGFILE GROUP: Tên của log file được sử dụng

- MAXLOGFILES: số lượng tối đa các log file group cho CSDL

- MAXLOGMEMBERS: số lượng tối đa các log file member đối với một log file group

- MAXLOGHISTORY: số lượng tối đa các redo log trong một group

- DATAFILE filespec: tên file dữ liệu được sử dụng

- AUTOEXTEND: cho phép hoặc không cho phép mở rộng tự động các file dữ liệu

- MAXDATAFILES: kích thước khởi tạo của một d

- MAXINSTANCES: Số lượng lớn nhất các instance có thể đồng thời mount và open CSDL

Trang 7

- ARCHIVELOG: Xác định ràng redo log cần để ở chế độ archive trước khi được dùng lại

- NOARCHIVELOG: Xác định ràng redo log cần được dùng lại mà không cần đặt chế độ

archive

- CHARACTER SET, NATIONAL CHARACTER SET: chuẩn ký tự mà CSDL sử dụng để lưu giữ

các dữ liệu

Oracle cung cấp sẵn file script để tạo CSDL đặt tại thư mục: ORACLE_HOME\RDBMS\ADMIN

Các bước tạo CSDL trong Window NT

Dùng Tool tạo script file, sau đó chạy script file này Các bước cụ thể như sau:

1 Chuẩn bị tên database, SID, block size, controll file, data file

2 Dùng Oradim tạo service

3 Tạo parameter file

4 Startup nomount

5 Tạo database (CREATE DATABASE)

6 Tạo tablespace

7 Tạo rollback segment

8 chạy script file

9 Config listener

10 Nối client-server

6 Tạo các khung nhìn từ điển dữ liệu vμ các package chuẩn

6.1 Từ điển dữ liệu

Từ điển dữ liệu là phần rất quan trọng của Oracle database, bao gồm một tập hợp các bảng, khung

nhìn (chỉ đọc) cung cấp các thông tin về những sự kết hợp trong CSDL

Từ điển dữ liệu được cập nhật bởi Oracle server mỗi khi có một câu lệnh định nghĩa dữ liệu (DDL) được

thực hiện và đôi khi là với cả các lệnh thao tác dữ liệu (DML)

Nội dung của từ điển dữ liệu:

• Định nghĩa tất cả các schema objects trong CSDL như(tables, views, indexes, clusters, synonyms,

sequences, procedures, functions, packages, triggers, and so on)

• Quy định vùng không gian cho các schema objects hiện thời được sử dụng

• Giá trị mặc định cho các cột

• Các thông tin về ràng buộc toàn vẹn

• Tên của các người sử dụng

• Privileges và roles được phân cho mỗi người sử dụng

• Các thông tin xác nhận, như quyền truy cập, cập nhật vào các schema objects của người dùng

• Các thông tin CSDL chung khác

Từ điển dữ liệu bao gồm hai phần

Trang 8

• Bảng cơ sở - Base table: chứa các thông tin về những sự kết hợp trong CSDL Base table được tạo

tự động bởi Oracle server ngay sau khi tạo xong CSDL Các thông tin trong base table phần lớn

được lưu trữ ở dạng mã hoá Nên khó có thể truy cập trực tiếp được Ví dụ: base table INS$, chứa

thông tin về các chỉ số trong database

• Khung nhìn từ điển dữ liệu - Data dictionary views: Phần lớn các user lấy thông tin từ các khung

nhìn vì ở đây các thông tin đều không ở dạng mã hoá Các thông tin này là các thông tin tổng hợp

được lấy ra từ các base table

Sử dụng từ điển dữ liệu

• Chỉ có Oracle server mới có thể viết, thay đổi nội dung của từ điển dữ liệu Oracle server ghi lại

các thay đổi trong cấu trúc CSDL, xác nhận, gán quyền, cấu trúc dữ liệu

• Người sử dụng chỉ có quyền xem nội dung thông tin của từ điển dữ liệu thông qua câu lệnh SQL

Phân loại khung nhìn từ điển dữ liệu

• DBA: khung nhìn của người quản trị CSDL Đó là tất cả những gì trong các schemas Khung nhìn

này có tiếp đầu ngữ là dba_ Ví dụ: dba_objects; nó cho xem tất cả các khung nhìn tổng thể của

toàn bộ CSDL Chỉ những người sử dụng được gán mức quyền hệ thống mới có thể truy xuất vào

các khung nhìn có tiếp đầu ngữ DBA Ví du:

SELECT owner, object_name, object_type

FROM dba_objects;

• ALL: khung nhìn mở rộng của sử dụng; tức là những gì mà người sử dụng có thể truy cập Khung

nhìn này có tiếp đầu ngữ là all_ Ví dụ: all_objects; nó cho phép xem tất cả các thông tin về

schema object mà người sử dụng có quyền truy cập Ví dụ:

SELECT owner, object_name, object_type

FROM all_objects;

• USER: khung nhìn người sử dụng; tức là những gì trong schema của người sử dụng Khung nhìn

này có tiếp đầu ngữ là user_

SELECT object_name, object_type

FROM user_objects;

Một vài ví dụ về từ điển dữ liệu:

• General overview

• Schema objects

• Space allocation

- DBA_FREE_SPACE

• Database structure

- DBA_DATA_FILES

Dynamic performance view

Trang 9

• Dynamic performance view hay còn gọi là bảng ảo Ghi lại tất cả các hoạt động (activity) của

CSDL hiện thời Các khung nhìn này có tiếp đầu ngữ là V_$, synonym V$

Các bảng cơ sở của từ điển dữ liệu được tạo tự động ngay sau khi CSDL được tạo Trong trường hợp

tạo CSDL bằng tay, ta vẫn có thể tạo được bằng cách chạy file scripts File này được đặt ở thư mục có

đường dẫn %ORACLE_HOME%\rdbms\admin Có 02 file scripts cần quan tâm:

• catalog.sql: tạo các khung nhìn và synonym từ điển dữ liệu chung

• catproc.sql: chạy các scripts cần thiết

6.2 Store Program

Store Program là cac hàm, thủ tục được tạo lập và lưu trữ ngay trong từ điển dữ liệu dưới dạng một

schema object Nó bao gồm một tập hợp các câu lệnh SQL

Sử dụng để truy cập và thao tác đối với dữ liệu trong CSDL thông qua các câu lệnh PL/SQL

Không chỉ chạy với các thủ tục viết bằng PL/SQL, quản trị viên CSDL còn có thể cài đặt Jserver

component cho phép Oracle server có thể thực hiện được các thủ tục viết bằng ngôn ngữ Java Để

thực hiện được việc này, trước tiên cần ánh xạ các tên thủ tục, tham số tương ứng và kiểu trả về sang

ngôn ngữ PL/SQL

Oracle server cho phép tích hợp cả với các thủ tục viết bằng ngôn ngữ C (được đặt trong các thư viện

chung dll)

Việc sử dụng cac Store Program mang lại một số lợi ích:

• Giảm thời gian biên dịch

• Có thể gọi các thủ tục viết bằng ngôn ngữ C/Java bằng lời gọi SQL, PL/SQL

• Đảm bảo việc bảo mật dữ liệu Người sử dụng không truy xuất trực tiếp vào dữ liệu mà thông qua

các thủ tục, hàm

• Các thủ tục là dùng chung, tức là nhiều người dùng chỉ cần dùng cùng một thủ tục để truy cập vào

CSDL

6.3 Package

Package là một tập hợp các biến, hằng, cursors, thủ tục, hàm, ngoại lệ được đặt cùng với nhau trong

trong CSDL tạo thành một đơn vị riêng biệt Người sử dụng hoặc các ứng dụng khác có thể gọi các

hàm, thủ tục trong package để thực hiện các công việc của mình

Một package được chia làm hai phần:

• Phần khai báo: để giao tiếp với bên ngoài, trong phần này có định nghĩa các kiểu, biến, hằng,

exception (ngoại lệ), cursors, và tên các hàm, thủ tục (có đầy đủ thám số và kiểu trả về) trong

package

• Phần thân: Bao gồm các hàm và thủ tục được cài đặt cụ thể theo ngôn ngữ PL/SQL Trong phần

này cũng có khi bao gồm cả các hàm, thủ tục chỉ thực hiện trong package

Các hàm trong package sau khi đã được ghi và biên dịch thì có thể được sử dụng chung cho cả các

ứng dụng khác Lợi điểm chính của package là sau lời gọi, toàn bộ package đều được nạp vào trong

bộ nhớ

Các ứng dụng khác chỉ có thể tham chiếu tới các biến, hàm khai báo trong phần package

specification Cú pháp:

Trang 10

EXECUTE | EXEC <tên package>.<tên hàm>[tham số];

EXECUTE | EXEC <tên package>.<tên biến> := <giá trị>;

Oracle cung cấp một số package có sẵn để thực hiện các công việc đặc biệt

• DBMS_SESSION: để tạo các câu lệnh SQL Ví dụ: SET_ROLE, SET_SQL_TRACE

• DBMS_UTILITY: cung cấp nhiều thủ tục tiện ích Ví dụ: ANALYZE_SCHEMA,

COMPILE_SCHEMA, DB_VERSION

• DBMS_SPACE: cung cấp các thông tin có sẵn về vùng trống segment Ví dụ: UNUSED_SPACE,

FREE_BLOCKS

• DBMS_ROWID: cung cấp thông tin ROWID Ví dụ: ROWID_INFO

• DBMS_SHARED_POOL: Lưu và thôi lưu các package trong shared pool Ví dụ: KEEP, UNKEEP

• DBMS_LOB: cung cấp các thủ tục thao tác trên các kiểu dữ liệu BLOB và CLOB

6.4 Trigger

Trigger là các đoạn chương trình được thực hiện ngầm định bởi Oracle server mỗi khi có một sự kiện

xác định xảy ra Trigger chỉ thực hiện khi sự kiện tương ứng với nó xảy ra Các thủ tục trigger có thể

được viết bởi ngôn ngữ PL/SQL, Java hay C

Sử dụng trigger

• Điều khiển giá trị các cột một cách tự động

• Ngăn chặn các giao dịch không hợp lệ

• Đảm bảo bảo mật dữ liệu

• Đảm bảo toàn vẹn trong CSDL phân tán

• Đảm bảo các ràng buộc tương ứng với quy tắc tác nghiệp

• Đảm bảo tính trong suốt

Các phần của một trigger

• Sự kiện kích hoạt - triggering event: sự kiện database, sự kiện do người sử dụng, câu lệnh SQL

gây ra việc kích hoạt trigger

• Trạng thái trigger - trigger restriction: được xác định bởi một biến logic Trigger chỉ có thể xảy ra

nếu giá trị của nó là TRUE Trigger sẽ không thể thực hiện được nếu trạng thái của nó là FALSE

hay UNKNOWN

• Nội dung trigger - trigger action: tập hợp các câu lệnh sẽ được thực hiện khi trigger được kích hoạt

Ví dụ:

CREATE OR REPLACE TRIGGER log_logon

AFTER LOGON ON DATABASE

WHEN (USER = ’SYS’ OR USER LIKE ’OPS$%’)

BEGIN

INSERT INTO sys.event_log

VALUES (’Logon ’ || USER || ’ at ’

|| TO_CHAR(sysdate, ’YYYY-MM-DD HH24:MI:SS’));

Ngày đăng: 06/08/2014, 01:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w