What is PIPER?
Piper is a simple Oracle SQL processor tool for Windows (98,NT,2000,XP) that allows you to run your
Oracle statements, examine data, and to test your Oracle PL/SQL procedures.
What releases of Oracle does Piper support?
Any Microsoft Windows-based Oracle client running Oracle 8.1.7 or higher. The DBMS Server can be at any Oracle level but some features (eg. CLOBS as XML) are only available on later releases.
Why is it better to call the OCI directly?
Piper directly uses the native Oracle SQL*Net Oracle Call Interface (OCI) rather than the more abstract,
RDBMS-independant software layers such as ODBC, OLE/DB, JDBC, etc. Piper never 'interprets' or manipulates the code you enter, so you know that you can always
submit true Oracle SQL without limiting yourself to another vendor's version of it.
It also gives you confidence that you are running or debugging your pure Oracle code
rather than someone else's SQL abstraction layer. It's also faster, because the
other layers (except JDBC Thin) end up at the OCI anyway. And it removes various configuration steps on your workstation.
Why do I care if Piper is multi-threaded?
How many times have you initiated a long-running query, and then wished you could start work on the next one, or
simply resize the query processor window?
Or worse still, how many times did a quick query turn out to be an unexpectedly long-running one that
needs to be abruptly interrupted?
Piper combines support for Windows multi-threading with Oracle's native call-management facilities to allow you to
interrupt your long-running Oracle query and/or manipulate client-side settings while your query is running.
How does Piper help me test my PL/SQL procedures?
Most SQL processor environments, and, sadly, most modern runtime environments, use string substitution only
to pass values to Oracle, and they use the results of SELECT statements only to get answers back to Oracle.
This is an unfortunate under-application of the power of Oracle's PL/SQL. Piper will auto-declare and auto-populate
any number of true SQL bind variables that can be used as bind variables or IN, OUT, and IN OUT arguments,
letting you set and display the values being manipulated by your PL/SQL packages.
How does Piper let me preview my web applications?
In Oracle's PL/SQL environment, you write web applications by using the HTP package and its support packages,
eg. HTF and OWA. In Piper, after you call your procedures (typically via a begin.. block), any and all web page
output that was generated via the HTP facility will be automatically displayed on Piper's built-in web browser window.
As a result you don't even need a web server to be present during your development work.
How does Piper act as a dynamic report / monitoring tool?
Piper lets you declare that your query or PL/SQL call is to run either a set number of times or indefinitely,
with the option to append, overwrite, or replace any previous output, and with an optional delay between
invocations. This simple feature allows many powerful forms of hands-free reporting or tracing to be set up.
For example, a critical set of database values can be selected and shown every 5 seconds, and because Piper is
a true multi-threaded Windows application, it can be resized or moved, or interrupted, at any time.
How does Piper trace output from a PL/SQL procedure that is not yet finished?
The most effective way of tracing a running PL/SQL procedure (or an anonymous block) is to write to an Oracle
pipe using the DBMS_PIPE package. This provides an asynchronous, transaction-independent communication
mechanism. Piper lets you write and run a fragment of PL/SQL that reads from such an Oracle Pipe, and lets
you run this fragment in a loop repeatedly, thus allowing you to trace and debug your PL/SQL code, or to set
up a live dynamic pipe-based roduction report facility.
How much does Piper cost?
It's free. We'll get our reward in heaven.
Who wrote Piper?
Those great guys at dbNet, an Oracle consultancy in Sydney, Australia.
Where / to Whom do I direct feedback or support enquiries?
Here. Note that while most types of feedback are welcome, technical support is
normally only available to dbNet's direct clients.
Piper Homepage