0
PL/pgSQL関数のデバッグ:私が動作するように、このPL/pgSQL関数を取得しようとしています
CREATE OR REPLACE FUNCTION loopcolumns2(tableName TEXT, pourcentage real)
RETURNS void AS $$
DECLARE
_name text;
missing_percentage real;
BEGIN
FOR _name IN SELECT column_name from information_schema.columns where table_name=tableName LOOP
SELECT 100 - (count(_name) * 100)/count(*) INTO missing_percentage FROM tableName;
IF (missing_percentage > pourcentage)
THEN ALTER TABLE tableName DROP COLUMN _name;
END IF;
END LOOP;
END; $$ LANGUAGE plpgsql;
機能の目標は、どこの列を削除し、テーブルのすべての列をループしています欠損値の割合は、入力の割合よりも大きいです。
私は次のエラーを取得する:
SELECT 100 - (count($1) * 100)/count(*) FROM $2
^
CONTEXT: SQL statement in PL/PgSQL function "loopcolumns2" near line 6
よろしくお願いします。どのように私はまだ 'EXECUTE'内部変数として' _name'と 'table_name'を使用することができますか?ありがとうございました –