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

DOスクリプトのPSQLコマンドライン引数

    PLブロックは実際にはコード内のテキスト定数であるため、内部変数は通常の方法でブロック内に置き換えられません。幸い、セッション変数を使用して、異なるSQL/PLブロック間でデータを共有することができます。

    set foo.bar to :v1; -- Name should contains the dot, don't ask me why 
    show foo.bar; -- Check that the value was assigned 
    do $$
    declare
      myvar text := current_setting('foo.bar');
    begin
      raise info '%', myvar; -- Output variable value
    end $$;
    

    変数が割り当てられていることを確認し、割り当てられていない場合はデフォルト値を設定するには:

    \if :{?v1}
      set foo.bar to :v1;
    \else
      set foo.bar to 'default';
    \endif
    

    詳細:
    https://www.postgresql.org/docs/current/app-psql.html#PSQL-METACOMMAND-IFhttps://www.postgresql.org/docs/current/app-psql.html #APP-PSQL-INTERPOLATION



    1. SQL Server(T-SQL)で列の照合を表示する方法

    2. Oracleで2番目に大きい最小値を選択します

    3. T-SQL:重複するすべての行を削除しますが、1つは保持します

    4. 大きなテキスト/CSVファイルをPLSQLで複数のファイルに分割