タグ付けされた質問 「plpgsql」

10
Postgresデータベースのすべてのテーブルを切り捨てる
再構築する前に、PostgreSQLデータベースからすべてのデータを定期的に削除する必要があります。これをSQLで直接行うにはどうすればよいですか? 現時点では、実行する必要のあるすべてのコマンドを返すSQLステートメントを考え出すことができました。 SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER'; しかし、それらを取得したら、プログラムで実行する方法がわかりません。

5
PL / pgSQLでクエリ結果を変数に保存する
PostgreSQLの手続き型言語であるPL / pgSQLの変数にクエリの結果を割り当てる方法は? 私には機能があります: CREATE OR REPLACE FUNCTION test(x numeric) RETURNS character varying AS $BODY$ DECLARE name character varying(255); begin name ='SELECT name FROM test_table where id='||x; if(name='test')then --do somthing else --do the else part end if; end; return -- return my process result here $BODY$ LANGUAGE plpgsql VOLATILE 上記の関数では、このクエリの結果を保存する必要があります。 …

2
何も返さない関数を作成する方法
で関数を書きたいのですがpl/pgsql。私はPostgresEnterprise Manager v3を使用し、関数を作成するためにシェルを使用していますが、シェルでは戻り値の型を定義する必要があります。戻り値の型を定義しないと、関数を作成できません。 結果を返さない関数、つまり新しいテーブルを作成する関数を作成するにはどうすればよいですか?

2
PostgreSQLの関数内でSELECTの結果を返す方法は?
私はPostgreSQLにこの関数を持っていますが、クエリの結果を返す方法がわかりません。 CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) as tokens GROUP BY text ORDER BY count DESC END $$ LANGUAGE plpgsql; しかし、PostgreSQL関数内でクエリの結果を返す方法がわかりません。 戻り値の型はであることがわかりましたSETOF RECORDよね?しかし、returnコマンドは正しくありません。 …

2
PL / pgSQLで使用される「$$」とは
PL / pgSQLに完全に新しいので、この関数の 2つのドル記号の意味は何ですか。 CREATE OR REPLACE FUNCTION check_phone_number(text) RETURNS boolean AS $$ BEGIN IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999'; END IF; RETURN true; END; $$ LANGUAGE plpgsql STRICT IMMUTABLE; 私はそれを推測している、ではRETURNS boolean AS $$、$$プレースホルダです。 最後の行は少し謎です: $$ …


8
PostgreSQL関数パラメーターとしてのテーブル名
Postgres関数のパラメーターとしてテーブル名を渡したい。私はこのコードを試しました: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN return 1; END IF; return 0; END; $$ LANGUAGE plpgsql; select some_f('table_name'); そして私はこれを手に入れました: ERROR: syntax error at or near "." LINE 4: ...elect * from quote_ident($1) where quote_ident($1).id=1)... …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.