A user has been configured on Oracle. Via this user, I can create an ODBC connection and an OCI connection, and these both test fine in Win10. Using Alteryx with the ODBC and OCI connection, we try to write data to a new table.
The table is created and appears in PL/SQL with the expected column names. However, the rows are never written and the connection just hangs at this point.
What could be wrong? I am not an Oracle Admin
Based on comments you were expecting oracle to commit without executing "commit" command explicitly. It's not enabled by default in oracle so you have to turn it on.
It's not possible to turn this on for the database, but on client apps only.
E.g. "set autocommit on" command in SQL Plus.
So you need to check docs for the client application you're connected with (presumably Alteryx is the one). It might have such a feature.
Related
We have a custom inventory system, for tracking all of our database, including Oracle v12 and v19 based databases. But as our DBA team has work with Container Databases (CDB), we need to identify, which one is a standalone or container, but we don't have any option to connection to the, due to our security policy.
Is there any way to Identify oracle Container Databases (CDB), without connecting to them?
As after reviewing Oracle official documentation: https://docs.oracle.com/database/121/ADMIN/cdb_mon.htm#ADMIN14174.
It seems that it's not possible, as the documented clearly mentioning, that first, it's necessary to connect to the database, and only then to run the following command: SELECT CDB FROM V$DATABASE;
And if the CDB column returns YES, the current database is a CDB. and NO, if the current database is a non-CDB.
I installed Oracle Database 19c and was able to connect to the database using sqlplus in command line. However when I try to use SQL developer I'm unable to connect. I noticed I don't have any listener service like I did when I had Oracle Database 21c installed on another computer. Is this why I can't access it on SQL developer? And if so how do I create that listener?
Access the database through SQL Developer.
(I don't have the reputation to comment, so I'm posting this here.)
Just wanted to say that I just encountered the same issue.
I installed Oracle 19c on Windows as "Software Only".
I used dbca.bat to create a database with a single pluggable database through the "basic" configuration. In the past I've gone through the "advanced" configuration, and I'm wondering if that's what lead to this.
So now I'm dropping the database and will try re-creating it to see if using the advanced DB installation provides a listener.
Edit
After deleting the database, then going back through the DB installation in dbca.bat via the "advanced" installation option, I noticed that the listener configuration was actually disabled by default, and I had to choose to add a listener.
I'm getting reacquainted with Oracle after several years and Oracle 18 XE is causing some problems. I use SQLDeveloper to connect as the SYSTEM user. Then when I create a new user cpp it says that is an invalid user name. I have to prefix new users with c##, so I created the user c##cpp. The c##cpp user is there under Other Users.
But when I try to create a new connection as the c##cpp user the connection fails. I've also tried creating the connection as just cpp, but that fails too.
What's up with creating users in Oracle 18 XE?
-------Update showing my connection parameters-------
I get the same error if I try to connect with SID XE.
Welcome back to Oracle.
Since you've been away, we added a Multitenant architecture. There is a Container Database - it has common users, with names like C##user.
What you're looking for is the actual database where your data is going to live, that's called a pluggable database. There you would go back to creating users, just like you did back before you left.
Make sure you connect to the pluggable database service. The default would be 'XEPDB1' - connect to THAT as sys or system, and then create your users.
It looks like the problem is that Oracle doesn't like lower case user names. When I put the username in double quotes the connection succeeds:
This is on Oracle 11. I gave up on Oracle 18 XE and installed Oracle 11. What a ridiculous waste of time.
This answer states that we should start OracleService* in order to connect to an Oracle DB.
However, there isn't a OracleService* among the list shown by services.msc.
Is there any other way to connect to an Oracle DB from command line, without using OracleService*?
My work uses Oracle 10G and is planning on installing Apex. In the meantime, I have downloaded Oracle XE and have taught myself APEX on it; however, I can only access users/tablespaces that I have made in the XE database. What I would like to do is use the XE's Apex to access the users/tablespaces in the production databases of my work.
My colleague says that this should be possible because my workstation is connected to the server, and that there should be a way to configure access from my XE's Apex to the 10g's databases, such as by setting up an appropriate DAD.
I see nothing in the Apex user interface to allow this. I've read every word of the Apex documentation but nothing registered.
XE uses the embedded PL/SQL gateway, as opposed to 10/11G which uses either an Apex Listener or an HTTP Server with the mod_plsql plugin.
Thank you,
Matthew Moisen
I have done this before where we didn't have access to the actual database hosting the data to be worked with save for the standard port 1521 listener access. Apex at the time was new enough to the organization that the DBA's also had a voodoo taboo on using their database server as a webserver gateway as well. You can use your database instance with APEX installed as a "middle tier" or app server with the following steps:
Set up an account on your 10g database that is accessible remotely via dblink.
Set up dblinks to your 10g database table on your workstation with XE installed, use the account and connection information for the 10g database as set up in (1). Note, you may have to update a TNS names file or explicitly indicate your host/networking settings within the dblink itself.
For simple sanity and simplicity in coding your apex projects, set up synonyms for all your dblinked objects (i.e., table1 for table1#dblink) so you're not referencing the dblinks directly in your apex code. Making changes later will be easier if you adhere to this.
That's it. One proviso is that you need to know that LOBs will not work with the out-of-the-box functionality of APEX driven DML operations while using dblinks. This may have changed with the newest version. One workaround you may consider is trying to use a stored procedure which passes your LOB data as a input parameter which will do your DML operation for you.
Otherwise, this approach works nicely. The place where I implemented this model has several production level apps, a test and a development tier all using servers hosting APEX separately from the actual data sources. We used Oracle Standard Edition One (for the support), but Oracle XE should work as well since APEX is the platform in common between either Oracle version.