Một gợi ý chung đầu tiên:Nhập biến của bạn l_sql
vào bảng điều khiển của bạn bằng cách sử dụng dbms_output.put_line
hoặc sử dụng một số loại bảng gỡ lỗi mà bạn có thể chèn nó vào. Cũng nên cẩn thận về kiểu dữ liệu của biến đó. Nếu bạn cần mở rộng SQL, bạn có thể đạt đến điểm mà bạn cần sử dụng CLOB
biến thay vì varchar2
.
Bạn sẽ cần cung cấp cấu trúc bảng và dữ liệu kiểm tra nếu bạn muốn phân tích vấn đề của mình một cách hoàn chỉnh, do đó, trước tiên tôi sẽ cung cấp cho bạn một số giải thích chung:
Use Generic Column Names
là ok nếu bạn có số lượng cột vĩnh viễn, không thể thay đổi. Nhưng nếu thứ tự các cột của bạn hoặc thậm chí số lượng có thể thay đổi, thì đây là một ý tưởng tồi, vì trang của bạn sẽ hiển thị lỗi nếu truy vấn của bạn dẫn đến nhiều cột hơn Generic Column Count
Tùy chọn 1:Sử dụng bí danh cột trong truy vấn của bạn
Nâng cao PL/SQL Function Body returning SQL Query
của bạn theo cách mà nó xuất ra các tên hiển thị dài dòng, như thế này:
return 'select 1 as "Your verbose column name", 2 as "Column #2", 3 as "Column #3" from dual';
Nó trông như thế này:
Nó có nhược điểm là tên cột cũng xuất hiện theo cách này trong trình thiết kế và APEX sẽ chỉ cập nhật những tên cột này nếu bạn xác thực lại hàm. Bạn sẽ gặp khó khăn khi tham chiếu một cột có tên nội bộ là Your verbose column name
trong mã quy trình hoặc hành động động.
Tuy nhiên, nó vẫn hoạt động, ngay cả khi bạn thay đổi tên cột mà không báo cho APEX, chẳng hạn bằng cách ngoại hóa PL/SQL Function Body
thành một chức năng thực sự.
Tùy chọn 2:Sử dụng tiêu đề cột tùy chỉnh
Một chút ẩn, nhưng cũng có tùy chọn tiêu đề cột hoàn toàn tùy chỉnh. Nó gần như ở cuối thuộc tính trang của khu vực báo cáo của bạn.
Tại đây bạn cũng có thể cung cấp một hàm trả về tên cột của bạn. Hãy cẩn thận rằng hàm này không phải trả về một truy vấn SQL mà chính nó trả về các tên cột, nhưng thay vào đó, trả về các tên cột được phân tách bằng dấu hai chấm .
Với phương pháp này, việc xác định và tham chiếu các cột của bạn trong trình thiết kế dễ dàng hơn:
Tùy chọn 3:Cả hai
Tắt Tên cột chung, để truy vấn của bạn trả về tên cột có thể dễ dàng xác định và tham chiếu, đồng thời sử dụng custom column headings
hàm trả về tên chi tiết cho người dùng của bạn.
Ý kiến cá nhân của tôi
Tôi đang sử dụng tùy chọn thứ 3 trong ứng dụng sản xuất, nơi mọi người có thể thay đổi số lượng và thứ tự của các cột bằng cách sử dụng các mục con thoi trên trang báo cáo. Phải mất một thời gian, nhưng bây giờ nó hoạt động như một sự quyến rũ, giống như một số PIVOT
động không có PIVOT
.