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

Python-Phân tích cú pháp SQL bằng cách sử dụng pyparsing

Trình phân tích cú pháp này đã được viết cách đây rất lâu và việc xử lý nhiều giá trị trong một tên kết quả mãi đến sau này mới xuất hiện.

Thay đổi dòng này trong trình phân tích cú pháp bạn đã trích dẫn:

single_source = ( (Group(database_name("database") + "." + table_name("table")) | table_name("table")) + 

đến

single_source = ( (Group(database_name("database") + "." + table_name("table*")) | table_name("table*")) + 

Khi tôi chạy câu lệnh mẫu của bạn thông qua trình phân tích cú pháp select_stmt, bây giờ tôi nhận được điều này:

select * from xyz  inner join dhf  on df = hfj  where z > 100
['SELECT', ['*'], 'FROM', 'xyz', 'INNER', 'JOIN', 'dhf', 'ON', ['df', '=', 'hfj'], 'WHERE', ['z', '>', '100']]
- columns: ['*']
- table: [['xyz'], ['dhf']]
  [0]:
    ['xyz']
  [1]:
    ['dhf']
- where_expr: ['z', '>', '100']


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trang hiển thị '?', Thay vì 'é'

  2. SQL Server tương đương với TO_CHAR và chuyển đổi định dạng

  3. Các vấn đề về khả năng tương thích của H2 và Oracle

  4. Làm cách nào để giải quyết lỗi ORA-01427 (Truy vấn con một hàng trả về nhiều hơn một hàng)?

  5. Lỗi khi sử dụng hàm DBMS_CRYPTO để giải mã dữ liệu CLOB