A5:SQL Mk-2

開発のこと、日々のこと

%(name)s スタイルのパラメータ

ホーム フォーラム A5:SQL Mk-2掲示板 %(name)s スタイルのパラメータ

  • このトピックには2件の返信、2人の参加者があり、最後にKAZAMAI_NaruToにより5年、 6ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #3012 返信
    KAZAMAI_NaruTo
    ゲスト

    要望です。

    Python の pep249 DB-API 2.0 には パラメータのスタイルとして 5つ挙がっていますが

    https://www.python.org/dev/peps/pep-0249/#paramstyle

    このうちの 「pyformat」でのパラメータ指定を受け付けられるようにしてほしいです。
    python から PostgreSQL に接続するのにつかう psycopg2 が %s と %(name)s の形式のみ対応なので。
    (ただ、実際に実装するには単純にそれだけの対応ではなく、 % の エスケープ等も必要なようですが。。。)

    http://initd.org/psycopg/docs/usage.html#passing-parameters-to-sql-queries

    #3030 返信
    松原正和
    キーマスター

    KAZAMAI_NaruTo さんこんにちは。

    現状、%(name)s 形式のパラメータは対応していないのですが、SQL実行時の置換機能(疑似命令と呼んでいます)を使うことで実行できるようになります。

    — 「%(name)s」を「:name」に置き換える例
    –* Replace ‘%(name)s’ ‘:name’
    select * from TABLE_NAME where name = %(name)s

    — 「%(name)s」を「’value’」に置き換える例
    –* Replace ‘%(name)s’ ”’value”’
    select * from TABLE_NAME where name = %(name)s

    これで対応することは可能でしょうか?。

    #3112 返信
    KAZAMAI_NaruTo
    ゲスト

    返答ありがとうございます。

    遅ればせながら試しました。

    複数の ; で区切られた SQL がある場合に各SQL文毎 にうめこまなければならないのが面倒ではあるものの疑似命令を使ってうまくいきました。

    コメント付きで Python Script に埋め込むかは思案どころですが
    ありがとうございます。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
返信先: %(name)s スタイルのパラメータで#3030に返信
あなたの情報:




コメントは受け付けていません。