tôi có thể đặt truy vấn sql trong trình giữ chỗ sql hana không
tôi có thể đặt truy vấn sql trong trình giữ chỗ sql hana không?
truy vấn sau hoạt động:
Select * From table1
('PLACEHOLDER' = ('$$IP_ShipmentDate$$', '2020-01-01'))
Tôi đang cố gắng chuyển một cái gì đó như sau:
Select * From table1
('PLACEHOLDER' = ('$$IP_ShipmentDate$$',
Select TO_VARCHAR(min("some_date"),'YYYY-MM-DD') from Table2)
Hiện đang gặp lỗi syntex
Trả lời
Như lỗi nói bạn, biểu hiện không được hỗ trợ cho tham số xem cột: Can't use column expression as column view parameter.
Tuy nhiên, có các tùy chọn để tính toán nó:
- Nếu giá trị của tham số của bạn có liên quan về mặt ngữ nghĩa với chế độ xem được tính toán này (ví dụ: bạn cần một số giá trị mặc định cho chế độ xem này được tính toán dựa trên một số logic), thì bạn có thể tạo một thủ tục được lưu trữ với một tham số đầu ra để tính toán giá trị và sử dụng kiểu tham số Bắt nguồn từ Thủ tục / Hàm vô hướng . Để điều chỉnh giá trị đó từ giao diện người dùng, bạn có thể đánh dấu giá trị đó là Đã bật Nhập . Hoặc nếu giá trị được tính toán dựa trên đầu vào của người dùng, bạn có thể ánh xạ các tham số đầu vào của thủ tục thành tham số đầu vào của chế độ xem tính toán trong phần Tham số / Biến -> Thủ tục / Hàm vô hướng cho các tham số đầu vào .
create procedure sp_dummy (
in dummy nvarchar(10) default '0',
out val nvarchar(10)
)
as begin
val = to_char(current_date, 'yyyymmdd');
end;
- Nếu giá trị tham số của bạn không liên quan đến chế độ xem tính toán và bạn chỉ sử dụng chế độ xem tính toán để lấy một số dữ liệu cho giá trị đó, bạn có thể sử dụng tính năng đặt kết quả của khối thủ tục / SQLScript được lưu trữ. Nếu trình thực thi SQL của bạn không cố gắng phân tích cú pháp câu lệnh SQL (ví dụ: SAP BO kiểm tra
SELECTlà từ SQL đầu tiên sau một số SP trở đi, vì vậy cách này sẽ không hợp lệ cho nó) và chỉ nhận được kết quả được đặt làm siêu dữ liệu cho các định nghĩa cột, thì bạn có thể tránh thêm đối tượng để bọc logic tính toán.
Để trả về một tập hợp kết quả, hãy sử dụng câu lệnh SELECT vì các khối ẩn danh không có bất kỳ tham số nào được xác định.
do begin
declare lv_param nvarchar(100);
select max('some_date')
into lv_param
from dummy /*your_table*/;
select *
from "_SYS_BIC"."path.to.your.view/CV_TEST" (
PLACEHOLDER."$$P_DUMMY$$" => :lv_param
);
end;
Điều đó với chế độ xem tính toán dựa trên bảng RSPCLOGCHAINđược lọc theo đầu ra của thủ tục được khai báo ở trên cho tôi
LOG_ID | DATUM | INPUT_PARAM | CUR_DATE
--------------------------+----------+-------------+----------
8FRV39X1O8814X6IJMLPI47PV | 20201221 | some_date | 20201221
C7S9EY3J0GYA76Y2S9CIA39QR | 20201221 | some_date | 20201221
35R8A3RFUG00EBY8MZQWJLIXF | 20201221 | some_date | 20201221
850MVHOJIKIDD7EVY6WFIYPZN | 20201221 | some_date | 20201221
Không, điều đó không được hỗ trợ.
Giao diện tham số chỉ dành cho chuỗi ký tự . CHỌN hoặc biểu thức sẽ không được đánh giá bởi HANA.
Để đạt được các tham số lựa chọn động (giả sử, ngày hiện tại hoặc ba tuần trước ), bạn có thể muốn xem xét thiết lập các giá trị mặc định thông qua các thủ tục được lưu trữ hoặc tính toán các giá trị mong muốn trong công cụ máy khách (giao diện người dùng).