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