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

Làm thế nào để tạo lập trình DDL từ cơ sở dữ liệu Oracle?

Gói DBMS_METADATA (giả sử bạn đang sử dụng phiên bản Oracle hợp lý gần đây) sẽ tạo DDL cho bất kỳ đối tượng nào trong cơ sở dữ liệu. Vì vậy,

SELECT dbms_metadata.get_ddl( 'TABLE', 'TABLEA', 'SCHEMAA' )
  FROM dual;

sẽ trả về một CLOB với DDL cho SchemaA.TableA. Bạn có thể bắt gặp trường hợp ngoại lệ được đưa ra mà đối tượng không tồn tại, nhưng tôi có xu hướng khuyên bạn nên truy vấn từ điển dữ liệu (tức là DBA_OBJECTS) để xác minh rằng có một bảng có tên TableA trong SchemaA, tức là

SELECT COUNT(*) 
  FROM dba_objects
 WHERE owner = 'SCHEMAA'
   AND object_name = 'TABLEA'
   AND object_type = 'TABLE'

Lưu ý rằng nếu bạn không có quyền truy cập vào DBA_OBJECTS, bạn có thể sử dụng ALL_OBJECTS để thay thế. Tuy nhiên, mối quan tâm ở đó là có thể có một TableA trong SchemaA mà bạn không có quyền truy cập SELECT. Bảng đó sẽ không xuất hiện trong ALL_OBJECTS (có tất cả các đối tượng mà bạn có quyền truy cập) nhưng sẽ xuất hiện trong DBA_OBJECTS (có tất cả các đối tượng trong cơ sở dữ liệu bất kể bạn có thể truy cập chúng hay không).

Sau đó, bạn có thể ghi DDL vào một tệp hoặc, nếu số lượng là 0, cho biết rằng đối tượng không tồn tại. Từ một thủ tục được lưu trữ, bạn có thể sử dụng gói UTL_FILE để ghi vào tệp trên máy chủ cơ sở dữ liệu. Nếu bạn đang cố gắng ghi vào một tệp trên hệ thống tệp máy khách, bạn sẽ cần sử dụng ngôn ngữ có quyền truy cập vào tài nguyên của hệ điều hành máy khách. Một chương trình C / Java / Perl / v.v. nhỏ sẽ có thể chọn một CLOB và ghi dữ liệu đó vào một tệp trên hệ điều hành khách.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01036:tên / số biến không hợp lệ khi chạy truy vấn thông qua C #

  2. Hàm ROWIDTOCHAR () trong Oracle

  3. Liệt kê tất cả các chức năng trong Cơ sở dữ liệu Oracle

  4. Trong trình kích hoạt Oracle, tôi có thể gán mới và cũ cho một biến kiểu hàng không?

  5. ORA-12728:phạm vi không hợp lệ trong biểu thức chính quy