tôi có một truy vấn như:
SELECT column as averyveryveryverylongalias (more than 30 characters)
FROM Table_name
nó trả về lỗi số nhận dạng ORA-00972 quá dài , có mẹo nào để làm cho nó hoạt động mà không làm cho bí danh ngắn hơn không?
Cảm ơn
Câu trả lời:
Không, trước phiên bản 12.2 của Oracle, số nhận dạng không được phép vượt quá 30 ký tự. Xem Tham chiếu Ngôn ngữ SQL Oracle .
Tuy nhiên, từ phiên bản 12.2, chúng có thể dài tới 128 byte. (Lưu ý: byte, không phải ký tự).
Lỗi cũng do việc xử lý các dấu ngoặc kép và các qutoes đơn lẻ. Để đưa dấu nháy đơn bên trong truy vấn, sử dụng tăng gấp đôi dấu nháy đơn.
Điều này sẽ không hoạt động
select dbms_xmlgen.getxml("Select ....") XML from dual;
hoặc cái này
select dbms_xmlgen.getxml('Select .. where something='red'..') XML from dual;
nhưng điều này KHÔNG hoạt động
select dbms_xmlgen.getxml('Select .. where something=''red''..') XML from dual;
Đối tượng nơi Oracle lưu trữ tên của số nhận dạng (ví dụ: tên bảng của người dùng được lưu trong bảng có tên USER_TABLES và tên cột của người dùng được lưu trong bảng có tên là USER_TAB_COLUMNS), có các cột TÊN (ví dụ: TABLE_NAME trong USER_TABLES) có kích thước Varchar2 (30) ... và nó đồng nhất thông qua tất cả các bảng hệ thống của các đối tượng hoặc số nhận dạng -
DBA_ALL_TABLES ALL_ALL_TABLES USER_ALL_TABLES
DBA_PARTIAL_DROP_TABS ALL_PARTIAL_DROP_TABS USER_PARTIAL_DROP_TABS
DBA_PART_TABLES ALL_PART_TABLES USER_PART_TABLES
DBA_TABLES ALL_TABLES USER_TABLES
DBA_TABLESPACES USER_TABLESPACES TAB
DBA_TAB_COLUMNS ALL_TAB_COLUMNS USER_TAB_COLUMNS
DBA_TAB_COLS ALL_TAB_COLS USER_TAB_COLS
DBA_TAB_COMMENTS ALL_TAB_COMMENTS USER_TAB_COMMENTS
DBA_TAB_HISTOGRAMS ALL_TAB_HISTOGRAMS USER_TAB_HISTOGRAMS
DBA_TAB_MODIFICATIONS ALL_TAB_MODIFICATIONS USER_TAB_MODIFICATIONS
DBA_TAB_PARTITIONS ALL_TAB_PARTITIONS USER_TAB_PARTITIONS
Nếu gần đây bạn đã nâng cấp springboot lên 1.4.3, bạn có thể cần thực hiện các thay đổi đối với tệp yml:
yml trong 1,3:
jpa:
hibernate:
namingStrategy: org.hibernate.cfg.EJB3NamingStrategy
yml trong 1.4.3:
jpa:
hibernate:
naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
Như những người khác đã đề cập, tên trong Oracle SQL phải ít hơn hoặc bằng 30 ký tự. Tôi muốn nói thêm rằng quy tắc này không chỉ áp dụng cho tên bảng mà còn cho cả tên trường. Vì vậy, bạn có nó.