0

正常に動作する次の関数がありますが、配列に何かが格納されているかどうかはわかりません。

DECLARE 
     _r record;
     point character varying[] := '{}';
     i int := 0;

BEGIN



FOR _r IN EXECUTE ' SELECT a.'|| quote_ident(column_name) || ' AS point
       FROM ' || quote_ident (table_name) ||' AS a'
LOOP

       point[i] = _r;
       i = i+1;

END LOOP;

RETURN point;
END;

私が求めているのは、javascript 側から、配列に格納されている各値をトラバースして読み取ることができる配列を持つことです。それは正しい方法ですか?

4

1 に答える 1

1

PL/pgSQL や PostgreSQL の配列は、javascript や php の配列とは何の関係もありません。

libpqphp のような -aware クライアントを使用している場合、データベースへのクエリはレコードのセットを返します。これはpg_fetch_array()、 php のように、呼び出し元の内部配列変数に蓄積できます。

JavaScript のようなシン クライアントを使用している場合は、JavaScript が理解できるように適切な形式でデータを返す必要があります。ネイティブ インターフェイスを介して PostgreSQL から結果を取得し、libpqそれを javascript 対応のJSON. PostgreSQL はXMLデータ型をネイティブでサポートしておりJSON、(現時点では少し制限されています)。それがあなたに役立つかどうかはわかりません。

PL/pgSQL 関数に関しては、この言語の公式ドキュメントを読むことを強くお勧めします。実行時にの値を確認するには、次のpointステートメントを使用します。

RAISE NOTICE 'point = %', point;
于 2013-02-19T13:24:37.823 に答える