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

Oracleでのレコードベースの挿入と更新

    挿入と更新が行われるテーブルに対する%ROWTYPE宣言に基づくレコード、またはテーブルの構造と互換性のある明示的なレコードTYPEに基づくレコードを使用することもできます。

    レコードベースの挿入例:

    DECLARE
    my_book books%ROWTYPE;
    BEGIN
    my_book.isbn:='1-123456-123-1';
    my_book.title:='Fox Infotech Blogs';
    my_book.summary:='フォックスの例';
    my_book.author:='V。 Kapoor';
    my_book.page_count:=300;
    INSERT INTO books VALUES my_book;
    END;
    /
    レコード指定子の前後に括弧を含めないことに注意してください。この形式を使用する場合:

    書籍の値に挿入(my_book); -かっこ付き、無効です!

    次に、ORA-00947:値が足りないという例外が発生します。これは、プログラムがテーブルの列ごとに個別の式を想定しているためです。

    レコードベースの更新例:

    レコードを使用して行全体の更新を実行することもできます。次の例では、booksテーブルの行を%ROWTYPEレコードで更新します。キーワードROWを使用して、行全体をレコードで更新していることを示していることに注意してください。

    DECLARE
    my_book books%ROWTYPE;
    BEGIN
    my_book.isbn:='1-123456-123-1';
    my_book.title:='Fox Infotech Blogs';
    my_book.summary:='フォックスの例';
    my_book.author:='V。 Kapoor';
    my_book.page_count:=300;

    書籍の更新
    SETROW =my_book
    WHERE isbn =my_book.isbn;
    END;
    /
    レコードベースの更新にはいくつかの制限があります:

    行全体をROW構文で更新する必要があります。列のサブセットを更新することはできません(ただし、これは将来のリリースでサポートされる可能性があります)。値がNULLのままになっているフィールドでは、対応する列にNULL値が割り当てられます。
    サブクエリを使用して更新を実行することはできません。
    そして、不思議に思うかもしれませんが、ROWというテーブル列を作成することはできません。

    1. チェック制約で日付を使用する、Oracle

    2. Php-PHPのインストールにWordPressに必要なMySQL拡張機能がないようです

    3. Pythonを使用したMySQLへの接続

    4. Oracleサブクエリの面白さ