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

PostgreSQL срещу Oracle:проверка по време на компилиране на PL/pgSQL

Да, това е известен проблем.

PL/pgSQL (като всяка друга функция, с изключение на SQL ) е „черна кутия“ за PostgreSQL, поради което всъщност не е възможно да се открият грешки освен по време на изпълнение.

Можете да направите няколко неща:

  1. обвийте вашата функция, извикваща SQL заявки към BEGIN / COMMIT изявления, за да имате по-добър контрол върху грешките;
  2. добавете EXCEPTION блокове към вашия код, за да улавяте и проследявате грешки. Обърнете внимание обаче, че това ще повлияе на работата на функцията;
  3. използвайте plpgsql_check разширение , разработен от Pavel Stěhule, който е един от основните участници в разработката на PL/pgSQL. Предполагам, че в крайна сметка това разширение ще влезе в ядрото на PostgreSQL, но ще отнеме известно време (сега сме в състояние 9.4beta3);
  4. Може също да разгледате този свързан въпрос:проверка на синтаксиса на postgresql без изпълнение на заявката

И наистина изглежда, че имате огромна нужда от рамка за тестване на единици.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PG gem няма да се инсталира в приложението Rails:Gem::Ext::BuildError:ГРЕШКА:Неуспешно изграждане на естествено разширение за gem

  2. PostgreSQL обучение за MySQLers

  3. Грешка на pgAdmin - релация [име на функция/Изгледи/Тригерни функции] не съществува

  4. Как да получите данни от Json в множество колони PostgreSQL

  5. Използване на \COPY за зареждане на CSV с JSON полета в Postgres