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

PL / pgSQLでネストされた関数を作成するにはどうすればよいですか?

    試してみてください:

    CREATE OR REPLACE FUNCTION outer() RETURNS void AS $outer$
    DECLARE s text;
    BEGIN
      CREATE OR REPLACE FUNCTION inner() RETURNS text AS $inner$
      BEGIN
        RETURN 'inner';
      END;
      $inner$ language plpgsql;
    
      SELECT inner() INTO s;
      RAISE NOTICE '%', s;
    
      DROP FUNCTION inner();
    END;
    $outer$ language plpgsql;
    

    postgres9.5ではSELECT outer(); 出力

     psql:/vagrant/f.sql:14: NOTICE:  inner
    

    編集:外部関数の最後に内部関数を削除しない場合、データベースの残りの部分に表示されたままになります。



    1. iPhoneの絵文字はMySQLに挿入されますが、空白の値になります

    2. MySQLの合計、group byでカウントし、参加します

    3. auto_increment数にギャップがないことを確認するにはどうすればよいですか?

    4. pl/sqlブロックからデータ行を返します