PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

postgresql, не можа да идентифицира колона в типа данни на запис

Проблемът е, че предавате параметър (db_row ) от тип record към SQL оператор, но такава стойност няма известна структура за SQL машината. Не можете дори да го преобразувате към типа таблица.

Едно грозно решение, за което мога да се сетя, е да прехвърлям записа към неговото текстово представяне (което работи с извикване на функцията за извеждане на типа) и след това да прехвърлям теста към желания тип таблица.

Това е примерен код, който илюстрира какво имам предвид:

DO $$
DECLARE
   r record;
   n name;
BEGIN
   /* find all tables with a column "oid" */
   FOR r IN
      SELECT t.*
         FROM pg_class t
              JOIN pg_attribute a ON a.attrelid = t.oid
         WHERE a.attname = 'oid'
   LOOP
      /* get the table name */
      EXECUTE format(
                 'SELECT ($1::text::%s).relname',
                 'pg_class'
              ) INTO n USING r;
      RAISE NOTICE 'Table name: %', n;
   END LOOP;
END;
$$;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. gem install pg не може да се свърже с libpq

  2. Първични ключове с Apache Spark

  3. Docker postgre невалиден първичен запис на контролна точка

  4. postgreSQL грешка initdb:командата не е намерена

  5. uWSGI, Flask, sqlalchemy и postgres:SSL грешка:неуспешно декриптиране или лош запис mac