PL/Java
Зовнішній вигляд
PL/Java являє собою безкоштовний додатковий модуль, який приносить Java™ збережених процедур, тригерів і функцій на внутрішньому інтерфейсі PostgreSQL ™. Розробка почалася в кінці 2003 і перший випуск PL/Java випущений в січні 2005 року під ліцензією PLJava.
Риси
- Уміння писати функції, тригери, визначені користувачем типи, ... з використанням останніх версій Java.
- Стандартизовані утіліти (за зразком пропозиції SQL 2003), щоб встановити і підтримувати Java-код в базі даних.
- Стандартизовані відображення параметрів і результату. Підтримка скалярних і складових типів, визначені користувачем (UDT), типи псевдо, масиви і набори.
- Вбудований, високопродуктивний драйвер JDBC, використовуючи внутрішні процедури PostgreSQL SPI.
- Підтримка метаданих для драйвера JDBC. Обидва DatabaseMetaData і ResultSetMetaData включені.
- Інтеграція з PostgreSQL і точками збереження обробки винятків.
- Можливість використовувати IN, параметри INOUT і OUT
- Два обробника мови, javau (функції не обмежений в поведінці, тільки привілейований користувач може створювати їх) і Java (функції працюють під менеджером безпеки блокуючого доступ до файлової системи, користувачі, які можуть створювати їх конфігуруються з GRANT / REVOKE).[1]
Використання JDBC
PL/Java містить драйвер JDBC, який зіставляє функції PostgreSQL SPI. З'єднання, що переводить до поточної транзакції може бути отриманий за допомогою наступного оператора:
Connection conn = DriverManager.getConnection("jdbc:default:connection");
Після отримання сполуки, ви можете підготувати і виконувати інструкції, подібні іншим JDBC з'єднанням. Обмеження для драйвера PL/Java JDBC:
- Угода не може управлятися будь-яким чином. Таким чином, ви не можете використовувати методи з'єднання, такі як:
- commit()
- rollback()
- setAutoCommit()
- setTransactionIsolation()
- Точки збереження доступні з деякими обмеженнями. Точка збереження не може пережити функцію, в якій віна була встановлена.
- Результуючий набір з ExecuteQuery () завжди FETCH_FORWARD і CONCUR_READ_ONLY.
- Мета-дані доступні тільки в PL/Java 1.1 або вище.
- CallableStatement (збережених процедур) не виконується.[2]
- ↑ tada/pljava. GitHub (англ.). Процитовано 22 травня 2017.
- ↑ Greenplum PL/Java Language Extension | Greenplum Database Docs. greenplum.org. Процитовано 22 травня 2017.