oracle 9i does not support aq subscribers? - oracle

I'm trying to make oracle aq queue subscriber (Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production). Script
DECLARE
subs sys.aq$_agent;
BEGIN
subs := sys.aq$_agent('Subscriber_1', NULL, NULL);
DBMS_AQADM.ADD_SUBSCRIBER(
queue_name => 'queue1',
subscriber => subs);
END;
works well, but than I'm trying to see subscribers for this queue (in SQL developer), I see message:
Not currently available for this DB Version.
And than I'm trying to delete this user, I have message than such user is not subscribed to the corresponding queue.
How can I check if my Oracle 9 supports aq subscribers or enable this support?
UPDATE:
All works fine, just this version of SQL Developer does not support this feature for Oracle 9

Why not look at the documentation?
The object aq$_agent exists in 9i as does the package dbms_aqadm. The first link in the latter leads to the Oracle9i Application Developer's Guide - Advanced Queuing.
This is not a typical Oracle error message (Googling it returns only this question). How are you trying to see subscribers for this queue? Are you querying the actual tables or using an inbuilt SQL Developer implementation?

Related

Azure Logic Apps - Oracle Connector - Execute a query

I am working on an Azure Logic Apps integration which insert data into an on-premise Oracle Database.
I can successfully run the Logic Apps integration and insert the data into our Oracle table (a custom staging table).
I would like to run a truncate on that table before inserting the new data.
I added the Oracle - Execute a Oracle Query component and then provided the following query:
TRUNCATE TABLE .<TABLE_NAME>;
After deploying to Azure, the integration failed on the Execute a Oracle Query with error:
"message": "BadGateway",
"innerError": {
"status": 502,
"message": "Unable to find the requested .Net Framework Data Provider. It may not be installed.\r\n inner exception: Unable to find the requested .Net Framework Data Provider. It may not be installed....",
If I remove the Execute a Oracle Query component, the Oracle Insert row component works fine.
I am not sure why it says the gateway may not be installed. I suspect it's a badly trapped error message.
Is that how the Execute a Oracle Query is supposed to be used?
Otherwise, how can I execute the truncate or how can I debug this error message?
Thanks!
The Oracle Connector for Azure Logic Apps does not support DDL. The exception you are getting is the generic one in Azure Logic Apps. I honestly believe the exception handler module is not very reliable here, because it usually goes to the gateway issue when the problem has no relation whatsoever. However, you have the option to overcome this limitation by using a call to an stored procedure.
In Oracle
create or replace procedure pr_trc_table ( ptab in varchar2 )
is
begin
execute immediate 'truncate table '||ptab||' ' ;
exception when others then raise;
end;
/
This Oracle Connector developed by Microsoft has a lot of limitations, which is normal as they try to ensure you use their own Azure SQL Service.
When invoking a Stored Procedure on an Oracle server, we have the following limitations:
OUT parameters are not supported currently.
Return value is not available since Oracle Stored Procedure does not return any result.
Oracle Functions are not supported so they are not listed in the UI.
The response size limit is 8MB.
The request size limit is 2MB.
Oracle native query is supported with the following limitations:
RefCursor is not supported.
OUT parameters are not supported.
Only one result set can be returned.
Gateway version 3000.63.4 (October release) or later is required.
Minimum supported version for Oracle Data Access Client is version 11
Besides, if any oracle query or stored procedure execution time exceeds 110 seconds, the action will timeout. Insert and update to a table does not return the full item, it returns only the input properties for the operation. A Primary Key is required to get deterministic paging result for GetRows operation.

Not able to create an XStream Outbound Server in Oracle for the Debezium Kafka Connector

I am following the instructions in the Official Debezium Documentation for Oracle Kafka connector. In the step where I have to create an outbound server, it throws the following exception:
ORA-65024: Pluggable database is not open
I have successfully followed all the previous steps in the link. But, being fairly new to Oracle, I failed to come to a conclusion by googling this error. I am using the following command in the SQL Plus to do so which throws the aforementioned error while logged in as c##xstrmadmin user as a sysdba:
DECLARE
tables DBMS_UTILITY.UNCL_ARRAY;
schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tables(1) := NULL;
schemas(1) := 'debezium';
DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
server_name => 'dbzxout',
table_names => tables,
schema_names => schemas);
END;
/
I also created a new Pluggable Database which is open in this case. I haven't yet applied for the GoldenGate Licence. Might there be a chance that this error is due to the unavailability of the licence? If so, any link which provides a trial version of GoldenGate setup and its instructions would be highly recommended. Trial version because we are currently using it for testing.
Tried the above in Oracle 18c and 12c
alter pluggable database ORCLPDB1 open;

Microsoft Flow Oracle Connector

According to this article:
You can now connect to your Oracle Database from PowerApps, Flow and Logic Apps. The Oracle Database connection allows you to list tables, and perform standard create, read, update and delete of rows in an Oracle databases. In addition, it supports full delegation of PowerApps’ filtering, sorting and other functions. It does not support triggers or store procedures yet.
The article was written in March 2017. Does the connector support triggers and stored procedures now?
I see the latest update mentioned about added support for Stored Procedures but with some limitations.
January 2018
Support Oracle view as read-only table
October 2018
Support Oracle Stored Procedure
Known issues and limitations
The followings are some of the known limitations of using Oracle connector
When invoking a Stored Procedure on an Oracle server, we have the following limitations:
a. OUT parameters are not supported currently.
b. Return value is not available since Oracle Stored Procedure does not return any result.
Oracle Functions are not supported so they are not listed in the UI.
The response size limit is 8MB.
Oracle native query is not supported.
Not sure about Trigger (I assume it is in backlog), you can submit the idea for community support votes to get prioritized by Microsoft here.

Delete Oracle Change Notifications

I'm trying to deregister change notifications in Oracle 12c by executing:
DBMS_CQ_NOTIFICATION.DEREGISTER(24906);
But this gives an error:
ORA-29970: Specified registration id does not exist
Although when I query the USER_CHANGE_NOTIFICATION_REGS view it does clearly state the correct regid.
Any one encountered this problem?
(Doc ID 971412.1)
How Can Database Change Notifications Not Created With PL/SQL Be Removed?
[ Last updated on JULY 05, 2017 ]
Applies to:
Oracle Database - Enterprise Edition - Version 10.2.0.1 to 11.2.0.2 [Release 10.2 to 11.2]
Oracle Data Provider for .NET - Version 10.2.0.1 to 11.2.0.1 [Release 10.2 to 11.2]
Information in this document applies to any platform.
Checked for relevance on 14th Dec 2016
Symptoms
You have an application that creates database change notifications via the OCI API or a higher level API that exposes this functionality such as ODP.Net. It does not create the notifications via PL/SQL, either through a stored procedure or PL/SQL block.
This application exits without cleaning up those notifications, typically via a fatal error as any controlled shutdown should remove any notifications. Or it may be that the application is still in development and the code to remove the notifications has a bug, or hasn't been added yet.
This leaves orphaned notifications in the database, which cannot be removed because they can only be removed within the same session in which they were created. Neither can they be removed with the PL/SQL function DBMS_CQ_NOTIFICATION.DEREGISTER(); this throws the error:
ORA-29970: Specified registration id does not exist.
Solution according to the MOS-Note:
Use patched Oracle version (bug fix included in 12.1 or later and the 11.2.0.4 Database and Client patchset)
enable following event to consume the fix: event "10865 trace name context forever, level 1".

how send email by Pl/sql

I want send email by using *oracle 9i - Enterprise edition release 9.2.0.8.0 ,*I know there is one package for oracle 10,but would you advice me about it for oracle 9i? Is there any package ?
Can I sent email by Oracle 9i?
Is there any way using an interface program such as a java program and send email via that one, if it is impossible to send mail by Oracle 9i...
I mean I just send parameter to that program and send email by using that program.
I can run write batch file,can we run Outlook and send email via that one by Oracle 9i?
P.s. my database is base on 9i and my form builder is version 6.
check this thread on asktom about sending emails (from version 8i+): "Sending e-mail! -- Oracle 8i specific response"
In version 9i, you have several options:
using PL/SQL and the UTL_SMTP package
using a java procedure
The UTL_SMTP option would be the easiest to setup but some features (such as attaching files) may require a bit more work and some knowledge of SMTP. See MikeyByCrikey's answer for a good example.
If you plan to upgrade, APEX has some mail utility (APEX_MAIL) available for version 10g+.
Oracle provides the UTL_SMTP package which allows you to send mail. It requires access to a mail server of some description.
This package is a little complicated to use. There is a supplied demo package that is available on the Oracle website which I am using successfully to send mail.
Check this page from Burleson.
http://www.dba-oracle.com/t_email_mailing_messages_plsql.htm
Oracle has, since 8i, the system package utl_smtp for this, and since 10g, the utl_mail that expands this functionality.

Resources