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

DjangoからPostgresSQLストアドプロシージャを呼び出す

    c = connection.cursor()
    try:
        c.execute("BEGIN")
        c.callproc("fn_save_message3", (Message_Subject, Message_Content, Message_Type, Message_Category, Created_By, Updated_By))
        results = c.fetchall()
        c.execute("COMMIT")
    finally:
        c.close()
    print results
    

    終了パラメーターを忘れて、cursorの関数を呼び出そうとしていました cの代わりに インデントにも問題がありました。 callproc()も使用する必要があります 文書化されたここ として機能します。

    カタバランが言ったように、カスタムSQLの実行に関するドキュメントを読み、プレースホルダーを使用する必要があります。また、Django 1.6以降では、トランザクションは自動的にコミットされるため、c.execute("COMMIT")は必要ありません。



    1. SQLServerでのデータベーステストの復元の自動化

    2. ORA-04084:このトリガー・タイプの新しい値は変更できません

    3. com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通信リンク障害

    4. Expressjsreq.bodyは空を返します