dapatkah saya menempatkan kueri sql di placeholder sql hana
dapatkah saya menempatkan kueri sql di placeholder sql hana ?
kueri berikut berfungsi:
Select * From table1
('PLACEHOLDER' = ('$$IP_ShipmentDate$$', '2020-01-01'))
Saya mencoba melewati sesuatu seperti berikut:
Select * From table1
('PLACEHOLDER' = ('$$IP_ShipmentDate$$',
Select TO_VARCHAR(min("some_date"),'YYYY-MM-DD') from Table2)
Saat ini mendapatkan kesalahan sinteks
Jawaban
Seperti kesalahan mengatakan Anda, ekspresi tidak didukung untuk kolom tampilan parameter: Can't use column expression as column view parameter
.
Namun, ada opsi untuk menghitungnya:
- Jika nilai parameter Anda secara semantik terkait dengan tampilan terhitung ini (misalnya, Anda memerlukan beberapa nilai default untuk tampilan ini yang dihitung berdasarkan beberapa logika), Anda dapat membuat prosedur tersimpan dengan satu parameter keluaran untuk menghitung nilai, dan menggunakan jenis parameter Berasal Dari Prosedur / Fungsi Skalar . Untuk membuat nilai tersebut dapat disesuaikan dari frontend Anda dapat menandainya sebagai Input diaktifkan . Atau jika nilai yang dihitung berdasarkan input pengguna, Anda dapat memetakan parameter input prosedur ke parameter input tampilan perhitungan di bagian Parameter / Variabel -> Fungsi Prosedur / Skalar untuk parameter input .
create procedure sp_dummy (
in dummy nvarchar(10) default '0',
out val nvarchar(10)
)
as begin
val = to_char(current_date, 'yyyymmdd');
end;
- Jika nilai parameter Anda tidak terkait dengan tampilan kalkulasi dan Anda hanya menggunakan tampilan kalkulasi untuk mendapatkan beberapa data untuk nilai tersebut, Anda dapat menggunakan fitur kumpulan hasil dari prosedur tersimpan / blok SQLScript. Jika pelaksana SQL Anda tidak mencoba mengurai pernyataan SQL (misalnya, SAP BO memeriksa
SELECT
sebagai kata SQL pertama setelah beberapa SP dan seterusnya, jadi cara ini tidak akan berlaku untuk itu) dan hanya mendapatkan hasil yang ditetapkan sebagai metadata untuk definisi kolom, maka Anda dapat menghindari objek tambahan untuk membungkus logika kalkulasi.
Untuk mengembalikan kumpulan hasil, gunakan pernyataan SELECT karena blok anonim tidak memiliki parameter yang ditentukan.
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;
Itu dengan tampilan perhitungan berdasarkan tabel yang RSPCLOGCHAIN
difilter oleh output dari prosedur yang dinyatakan di atas memberi saya
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
Tidak, itu tidak didukung.
Antarmuka parameter hanya untuk string karakter . SELECT atau ekspresi tidak akan dievaluasi oleh HANA.
Untuk mencapai parameter pemilihan dinamis (misalnya, tanggal saat ini atau tiga minggu yang lalu ) Anda mungkin ingin melihat ke dalam pengaturan nilai default melalui prosedur tersimpan atau ke dalam menghitung nilai yang diinginkan di alat klien (front-end).