Ich versuche, diese PL/pgSQL-Funktion zu arbeiten:Debuggen eines PL/pgSQL Funktion
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;
Das Ziel der Funktion eine Schleife durch alle Spalten einer Tabelle, ein Löschen Sie die Spalten, in denen Der Prozentsatz der fehlenden Werte ist größer als ein Eingabe-Prozentsatz.
bekomme ich folgende Fehlermeldung:
SELECT 100 - (count($1) * 100)/count(*) FROM $2
^
CONTEXT: SQL statement in PL/PgSQL function "loopcolumns2" near line 6
Können Sie mir bitte Mre Details bitte? Wie kann ich '_name' und' table_name' immer noch als Variablen innerhalb des 'EXECUTE' verwenden? Vielen Dank –