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

他のビューで使用される列のタイプを変更する

    VARIADICセマンティクスと互換性を持たせるために、ビューリストを引数の最後に移動しましたが、これで問題が解決すると思います。

    CREATE OR REPLACE FUNCTION recreate_views(run_me text, VARIADIC views text[])
      RETURNS void
    AS  $$
    DECLARE
      view_defs text[];
      i integer;
      def text;
    BEGIN
      for i in array_lower(views,1) .. array_upper(views,1) loop
        select definition into def from pg_views where viewname = views[i];
        view_defs[i] := def;
        EXECUTE 'DROP VIEW ' || views[i];
      end loop;
    
      EXECUTE run_me;
    
      for i in reverse array_upper(views,1) .. array_lower(views,1) loop
        def = 'CREATE OR REPLACE VIEW ' || quote_ident( views[i] ) || ' AS ' || view_defs[i];
        EXECUTE def;
      end loop;
    
    END
    $$
    LANGUAGE plpgsql;
    


    1. Jdbcドライバーが見つかりません

    2. ODP.NET、Managed Driver Beta(Oracle.ManagedDataAccess.dll)を使用したLDAPルックアップがC#アプリケーションで失敗する

    3. 2つの列を1つの変数に結合するSQL

    4. BIGINTUNSIGNED値が範囲外です