foreach
私の目的は、テーブルの名前を配列に割り当て、この配列を介してループにドロップすることです。
私は実際にはもっと複雑なことをしようとしていますが、次のコードを機能させる前に:
CREATE OR REPLACE FUNCTION delete_auto()
RETURNS void AS
$BODY$DECLARE
t text;
tbl_array text[] = array["ID: 889197824 CH: 0006 Messdaten2","ID: 889197824 CH: 0006 Messdaten3","ID: 889197824 CH: 0006 Messdaten4"];
BEGIN
FOREACH t IN ARRAY tbl_array LOOP
DROP TABLE t;
END LOOP;
END; $BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION delete_auto()
OWNER TO postgres;
関数はかなり正しいように思えますが、テーブルを削除せず、実行後に実際には何もしません。ログに次のようなエラーが表示されます。
Table »t« does not exist.
text[] の代わりに varchar[] を使用して同じコードを試しましたが、どちらも機能しませんでした。どんな助けでもいただければ幸いです