SQLing Gateway
Your PL/SQL web pages, still running. Oracle not required.
Before APEX, there was the PL/SQL Web Toolkit: stored
procedures that print their pages with htp.p, served by
mod_plsql, the Oracle HTTP Server or the ORDS PL/SQL gateway.
SQLing Gateway serves those applications as written.
It uses the same /dad/procedure URLs, the same parameters
and the same pages. Underneath is the SQLing
Engine on SQLite or Postgres, with no Oracle database involved.
What it serves
-
Pages that are stored procedures
Every member of
HTPandHTF, with Oracle's parameter names, so calls likehtp.formText(cname => 'p_name')work, and the markup Oracle writes. The page buffer too:htp.get_page,get_line,putraw.OWA_UTILin full: headers, redirects and the CGI environment, and the query printerstablePrint,cellsprint,listprintandcalendarprint. AlsoOWA_COOKIE,OWA_TEXT,OWA_PATTERN,OWA_IMAGEandOWA_OPT_LOCK. -
PL/SQL Server Pages too
If you kept your pages as
.pspfiles, the gateway compiles them the wayloadpspdid. It handles directives, declarations, code blocks, expressions,include,contentTypeanderrorPage. You keep editing the pages and skip the step that loaded them into Oracle. -
The gateway's own rules
These follow mod_plsql:
- Parameters bind by name, and repeated fields fill collections.
!procflexible parameters are supported.- A wrong call returns 404, and the exclusion list returns 403.
- Each request is one transaction, and package state resets between requests.
- File upload uses the document table, and
wpg_docloadhandles download. OWA_SECcustom authentication: yourowa_custom.authorizedecides, and the browser is asked to sign in.OWA_CACHEETags and304 Not Modified.
Proven on a real application
One test was a public-sector class registration and administration system written in 2003. It has about 70 procedures and 45 pages over two schemas, with public sign-up on one side and a back office on the other: rosters, certificates, printable cards, instructor records and a clickable map of class locations. Its owners had it rewritten twice to get off Oracle.
We loaded the original DDL and PL/SQL, as written, and it ran. The one
change was in its login check, which had a bug the original carried
too. Its .psp sources compile to the same procedures that
were in production.
Running it
Database access descriptors live in a JSON file, and an optional administration console adds, edits and reloads them while the gateway runs. The PL/SQL in your procedures runs on the SQLing Engine, so its coverage limits apply here too.
Try it
The sample HR application lets you list, edit, save and delete records, upload and download documents, and export CSV. It is plain Web Toolkit PL/SQL, served live; what you change is put back when the service restarts.
The Wiki is a wiki engine written in PL/SQL for mod_plsql and ORDS. It keeps pages with their history, links and search, and has a WYSIWYG editor, forms on a page whose entries are kept as records, and exports of a page, its records or the whole wiki. This public copy is read-only: browse it, search it, read its history and export its pages.
The source of both is public, under the MIT licence: plsql-webtoolkit-samples.
On your own server, point the gateway at your database and your sources:
$ sqling-gateway --db app.zip --dad app --default-page app_web.home \
--install app_web.sql --install pages/register.psp
http://127.0.0.1:8800/app/
Have a Web Toolkit application you would rather not rewrite?
Send us a package or a page, and a count of what you have. We will tell you what runs today. Contact us.