SAP HANAの新機能です。クエリを生成してストアドプロシージャ内で実行しようとしています。SAP HANAはプロシージャ内で生成されたクエリを実行します
エラーが発生し、ハナがそのようなことを行うことができるかどうかはわかりません。
ここに私のコードを実行して
CREATE PROCEDURE "PROCEDURE_IBA_TESTCSV"(
IN SCHEMA_NAME VARCHAR(100))
LANGUAGE SQLSCRIPT SQL SECURITY INVOKER AS
BEGIN
DECLARE T VARCHAR(1000);
DECLARE TA VARCHAR(1000);
SELECT
' SELECT ' || MAX(C_1) || IFNULL(MAX(C_2),'')|| IFNULL(MAX(C_3),'') ||' AS STATEMENT FROM ' || SCHEMA_NAME || '.' || TABLE_NAME || ' ' INTO T
FROM (
SELECT POSITION, DATA_TYPE_ID, COLUMN_NAME ,SCHEMA_NAME, TABLE_NAME ,
CASE WHEN POSITION = 1 THEN
' CASE WHEN ('|| COLUMN_NAME ||' IS NULL) THEN '''' ELSE REPLACE(TO_CHAR(' || COLUMN_NAME || '),''.'','','') END' END AS C_1,
CASE WHEN POSITION = 2 THEN '||''#''|| CASE WHEN ('|| COLUMN_NAME ||' IS NULL) THEN '''' ELSE TO_NVARCHAR('||COLUMN_NAME||') END' END AS C_2,
CASE WHEN POSITION = 3 THEN '||''#''|| CASE WHEN ('|| COLUMN_NAME ||' IS NULL) THEN '''' ELSE TO_NVARCHAR('||COLUMN_NAME||') END' END AS C_3
FROM (
select SCALE,SCHEMA_NAME,position,TABLE_NAME,column_name, data_type_id from TABLE_COLUMNS where
schema_name ='IMPORT_KT_STAMM_IK_348BA_20160706' AND TABLE_NAME='CLS_220_KTHISTORIE')) group by SCHEMA_NAME,TABLE_NAME;
execute immediate :T ;
INSERT INTO Test SELECT :T from DUMMY;
END;
:Tは私が同じプロシージャ内の変数には、この出力のSUM(長さ)を保存したいと思い、この出力
を取得します。
これは可能ですか?どんな助け?
ありがとうございました
こんにちは、 あなたの返信ありがとう、はい私はタブを与えるSQLを生成しようとしたい私は3つの例をして、私は良い結果を得ました、ちょうどcsvデータのサイズと同じです。 私を助けてもらえますか?私が実行するとき:T私はcsvテーブルを取得します。私は本当に動的SQLを必要としません、私は変数の出力を取得する必要があります。合計(長さ)を作る。ありがとう –
私は多分DECLARE CURSOR c_products FOR:T?を書くことができますか? –