2012-06-25 25 views
10

thể trùng lặp:
Why are Oracle table/column/index names limited to 30 characters?Tại sao có độ dài tối đa cho tên thủ tục được lưu trữ?

Khi viết một thủ tục lưu trữ trong Oracle, tôi đã chọn một tên đặc biệt mô tả, và khi cố gắng cập nhật các kịch bản tôi đã được thông báo tên quá dài .

37 15 PLS-00114: identifier 'blah_blah_blah_blah_blah_blah' too long 

Tại sao có giới hạn hạn chế đối với tên proc được lưu trữ? Điều này chỉ dành riêng cho Oracle hay điều này phổ biến trong các hệ thống db khác?


Xin lỗi vì sự duplicate

+0

Trong SQL Server, ký tự '128' là độ dài tối đa cho' sysname' (kiểu dữ liệu được sử dụng trong bảng cơ sở hệ thống) –

+0

Tốt hơn rất nhiều so với 30 trong Oracle, khi tôi nhanh chóng phát hiện ra. – JWiley

+1

Bởi vì Oracle đến từ những ngày khi 30 ký tự được coi là quá đủ! Sau khi tất cả, với tên tập tin của 8 ký tự, 30 là một tấn! –

Trả lời

1

của nó thực sự 30 ký tự chỉ trong Oracle.

Mỗi ngôn ngữ/db có giới hạn độ dài trong khi xác định tên vì tên của mọi đối tượng được tạo trong DB được lưu trữ trong bảng hệ thống và mỗi cột có độ dài cố định.

Để thực hiện, chúng tôi giữ tên ngắn gọn trong trường hợp DB.

+8

hmm câu trả lời này như thế nào * Tại sao có giới hạn hạn chế như vậy trên tên proc được lưu trữ? * –

+0

Vì điều này cũng bật lên cho MySQL - cho MySQL 5.7 (và có lẽ là các phiên bản khác), nó là 64 - thủ công - https://dev.mysql.com/doc/refman/5.7/en/identifiers .html –

+1

@ConradFrix Tôi đã đề cập rằng tất cả các thông tin đối tượng db được lưu trữ trong chính bảng hệ thống. Bảng có cột và chúng xuất hiện với một số kích thước được xác định, do đó hạn chế để giới hạn độ dài nội dung được lưu trữ. –

Các vấn đề liên quan