sql >> データベース >  >> RDS >> PostgreSQL

パラメータとしてのPostgres整数配列?

    参照:http://www.postgresql.org/docs/9.1/static/arrays.html

    それでも非ネイティブドライバで配列を渡すことができない場合は、次のことができます。

    • 配列の文字列表現を渡します(ストアドプロシージャはこれを配列に解析できます。string_to_arrayを参照してください。 )

      CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ 
      DECLARE
             ids INT[];
      BEGIN
             ids = string_to_array($1,',');
             ...
      END $$ LANGUAGE plpgsql;
      

      次に

      SELECT my_method(:1)
      

      :1 ='1,2,3,4'

    • 文字列から配列へのキャストはPostgres自体に依存しています

      CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ 
             ...
      END $$ LANGUAGE plpgsql;
      

      次に

      SELECT my_method('{1,2,3,4}')
      
    • バインド変数を使用せず、代わりにすべてのパラメーターをスペルアウトした明示的なコマンド文字列を発行することを選択します(SQLインジェクション攻撃を回避するために、外部からのすべてのパラメーターを検証またはエスケープしてください)。

      CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ 
             ...
      END $$ LANGUAGE plpgsql;
      

      次に

      SELECT my_method(ARRAY [1,2,3,4])
      


    1. PostgreSQL:FATAL-ユーザーのピア認証に失敗しました(PG ::ConnectionBad)

    2. SQLServerのデフォルトの文字エンコード

    3. MVC4:UserIsInRole-SQLServerデータベースに接続できません

    4. 複数のオプションを1つのテーブルに保存するにはどうすればよいですか?