plisql
plisql
ivorysql : PL/iSQL procedural language
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 9180 | plisql | ivorysql | 1.0 | SIM | Apache-2.0 | C |
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
--s-dt- | No | Yes | No | Yes | no | yes |
| Relationships | |
|---|---|
| Schemas | pg_catalog |
| Siblings | ivorysql_ora ora_btree_gin ora_btree_gist pg_get_functiondef gb18030_2022 |
from src/pl/plisql/src/plisql.control and IvorySQL package metadata
Packages
| Type | Repo | Version | PG Major Compatibility | Package Pattern | Dependencies |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0 | 18 17 16 15 14 | ivorysql | - |
| RPM | PIGSTY | 5.1 | 18 17 16 15 14 | ivorysql5 | - |
| DEB | PIGSTY | 5.1 | 18 17 16 15 14 | ivorysql-5 | - |
| Linux / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
el8.x86_64 | MISS | MISS | MISS | MISS | MISS |
el8.aarch64 | MISS | MISS | MISS | MISS | MISS |
el9.x86_64 | MISS | MISS | MISS | MISS | MISS |
el9.aarch64 | MISS | MISS | MISS | MISS | MISS |
el10.x86_64 | MISS | MISS | MISS | MISS | MISS |
el10.aarch64 | MISS | MISS | MISS | MISS | MISS |
d12.x86_64 | MISS | MISS | MISS | MISS | MISS |
d12.aarch64 | MISS | MISS | MISS | MISS | MISS |
d13.x86_64 | MISS | MISS | MISS | MISS | MISS |
d13.aarch64 | MISS | MISS | MISS | MISS | MISS |
u22.x86_64 | MISS | MISS | MISS | MISS | MISS |
u22.aarch64 | MISS | MISS | MISS | MISS | MISS |
u24.x86_64 | MISS | MISS | MISS | MISS | MISS |
u24.aarch64 | MISS | MISS | MISS | MISS | MISS |
Source
Install
Make sure PGDG and PIGSTY repo available:
pig repo add pgsql -u # add both repo and update cacheInstall this extension with pig:
pig install ivorysql; # install via package name, for the active PG version
pig install plisql; # install by extension name, for the current active PG version
pig install plisql -v 18; # install for PG 18Create this extension with:
CREATE EXTENSION plisql;Usage
PL/iSQL is an Oracle-compatible procedural language for PostgreSQL, provided by the IvorySQL project. It extends PL/pgSQL with Oracle PL/SQL syntax and semantics.
Enabling
CREATE EXTENSION plisql;Creating Functions
CREATE OR REPLACE FUNCTION hello_world
RETURN VARCHAR2
AS
BEGIN
RETURN 'Hello, World!';
END;
/Oracle-Style Procedures
CREATE OR REPLACE PROCEDURE update_salary(
p_emp_id IN NUMBER,
p_amount IN NUMBER
)
AS
BEGIN
UPDATE employees SET salary = salary + p_amount WHERE emp_id = p_emp_id;
END;
/
CALL update_salary(100, 5000);Key Features
- Oracle-style
BEGIN...ENDblocks IN,OUT,IN OUTparameter modes- Oracle-style exception handling with named exceptions
%TYPEand%ROWTYPEattribute references- Oracle-compatible cursor syntax (
CURSOR...IS,OPEN,FETCH,CLOSE) RETURNinstead ofRETURNSin function declarations- Package-like variable scoping
Differences from PL/pgSQL
- Uses
ASkeyword instead of$$delimiters - Supports Oracle-style
/as statement terminator VARCHAR2,NUMBER, and other Oracle types natively supported- Oracle-compatible
DBMS_OUTPUTintegration
Last updated on