MulaiMulai sekarang secara gratis

Membuat fungsi bernama dan mendeklarasikan variabel

Sekarang setelah Anda melihat fungsi debugging yang kuat digunakan, mari buat milik Anda sendiri. Mulailah dengan mendefinisikan tanda tangan fungsi yang memasok nama fungsi, parameter (jika ada), dan tipe nilai kembali. Setelah itu, sisanya sama seperti fungsi DO.

Latihan ini adalah bagian dari kursus

Transaksi dan Penanganan Error di PostgreSQL

Lihat Kursus

Petunjuk latihan

  • Definisikan sebuah fungsi bernama debug_statement yang menerima sebuah pernyataan SQL sebagai sql_stmt.
  • Tipe nilai kembali fungsi harus BOOLEAN.
  • Fungsi harus mengeksekusi pernyataan SQL yang diberikan dan menangkap pengecualian apa pun.
  • Fungsi harus mengembalikan True jika memicu debugging dan False jika tidak.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

-- Define our function signature
___ ___ ___ ___ debug_statement(
    sql_stmt TEXT
)
-- Declare our return type
___ ___ AS $$
    DECLARE
        exc_state   TEXT;
        exc_msg     TEXT;
        exc_detail  TEXT;
        exc_context TEXT;
    BEGIN
        BEGIN
            -- Execute the statement passed in
            ___ sql_stmt;
        EXCEPTION WHEN others THEN
            GET STACKED DIAGNOSTICS
                exc_state   = RETURNED_SQLSTATE,
                exc_msg     = MESSAGE_TEXT,
                exc_detail  = PG_EXCEPTION_DETAIL,
                exc_context = PG_EXCEPTION_CONTEXT;
            INSERT into errors (msg, state, detail, context) values (exc_msg, exc_state, exc_detail, exc_context);
            -- Return True to indicate the statement was debugged
            ___ ___;
        END;
        -- Return False to indicate the statement was not debugged
        RETURN ___;
    END;
$$ LANGUAGE plpgsql;
SELECT debug_statement('INSERT INTO patients (a1c, glucose, fasting) values (20, 89, TRUE);')
Edit dan Jalankan Kode