Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> DBMS_PIPE updates the database?

DBMS_PIPE updates the database?

From: Nels P. Olsen <Nels.Olsen_at_PentaTechInc.com>
Date: 1997/05/21
Message-ID: <33836289.4475@PentaTechInc.com>#1/1

I'm trying to use the built-in DBMS_PIPE package within package functions that provide view column values. My package functions send messages via DBMS_PIPE to a C program daemon that returns data from UNIX shell commands.

Unfortunately, if I specify my package function using PRAGMA RESTRICT_REFERENCES with WNDS (write no database state), the package body is created with compilation errors, which say that the function violates its pragma. If I comment out the calls to DBMS_PIPE functions and procedures, the pragma violation disappears.

All the documentation I can find says that DBMS_PIPE communicates through shared memory in the SGA. Oracle documentation strongly suggests (but does not explicitly say) that a potential use for the DBMS_PIPE package is the creation of views that provide access to non-Oracle, non-SQL data generated by operating system commands.

Upon examining the DBMS_PIPE package specification in $ORACLE_HOME/rdbms/admin/dbmspipe.sql, there aren't any PRAGMA RESTRICT_REFERENCES defined. We have an unwrapped copy of $ORACLE_HOME/rdbms/admin/prvtpipe.sql (the DBMS package body source), and it doesn't contain any explicit database inserts, updates, or deletes.

What am I doing wrong? Did Oracle simply forget to define appropriate PRAGMAs for DBMS_PIPE, or does it really update the database? If so, that really cripples its potential.

Nels Olsen
Penta Technologies, Inc. Received on Wed May 21 1997 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US