わけあって、パラメータありCDS Viewが HANA上でどう生成されるかを確認しました。
パラメータありCDS Viewを定義します。DDICが生成される少し古いやり方です。
@AbapCatalog.sqlViewName: 'YSAPTEST00'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Test CDS View with parameter'
define view YSAP_Test00 with parameters aaa:abap.dats
as select from t000
{
$parameters.aaa as TEST
}
HANAのレイヤではこんなTable Functionが作られています。t-cd:SE11 からDDIC View詳細画面でユーティリティ -> データベースオブジェクト -> 照会で 確認。
CREATE FUNCTION "YSAPTEST00" ( "AAA" NVARCHAR(000008) )
RETURNS TABLE
( "TEST" NVARCHAR(000008) )
LANGUAGE SQLSCRIPT AS
BEGIN RETURN
SELECT
AAA AS "TEST"
FROM
"T000" "T000" ; END
こんなSQLでクライアントの件数分、結果取得できます。
SELECT "TEST" FROM "SAPHANADB"."YSAPTEST00"("AAA" => 20220815)
Pythonから使うとhdbcliだけでなく、hana_mlでDataFrameとしても扱えます。1件だけだすようにCDS Viewを微修正しています。
>> from hana_ml.dataframe import ConnectionContext,
>> conn = ConnectionContext(address=<HOST>, port=<PORT>,
>> user=<USER>, password=<PASSWORD>, schema=<SCHEMA>)
>> dfh = conn.sql('SELECT "TEST" FROM "YSAPTEST00"("AAA" => 20220102)')
>> dfh.collect()
TEST
0 20220102
Subscribe
Login
Please login to comment
0 Comments