Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

How to Extract the Final SQL Query from a PreparedStatement in Java?

shrikant yadavFeb 17 2025 — edited Feb 17 2025

Hello everyone, I need help in this scenario.

@sunforumsguest55

Could you please guide me on how I can achieve this? I saw someone had already mentioned it before, but that ticket is closed, so I'm raising this question again because I haven't found a solution yet.

would like to see what the value of setString() is for a given prepared statement call.

Because of reasons that would take me to long to explain that I cannot use preparedstatements with their parameters - I need a way to execute a query like the following:
String query = "insert into blahtable (somestring) values (\"asdfds\'\s sdsfdasfd \"\& ...\");
PreparedStatement stmt = connection.prepareStatement(query);
I know prepared statements can take care of this, but I want to know and write the query as above without the need of prepared statements help for string.

Below is an example with prepared statement - but not what I want to do
For example:
String oddstringwithunusalcharacters = "...";
String query = "insert into blahtable (somestring) values (?)";
PreparedStatement stmt = connection.prepareStatement(query);
stmt.setString(1, oddstringwithunusalcharacters);

I would like to see what the actual query looks like and what the actual string was passed:
--> insert into blahtable (something) values ("asdfds\'\s sdsfdasfd \"\& .... ")

It is not sufficient enough for me to escape quotes and apostrophes because there maybe other unusual characters that I do not know of since the string is passed by an unknown source.

this is my scenario

I'm using Struts 1 and Oracle SQL as my database. I'm facing the same issue with prepared statements. In my scenario, I'm generating a .csv file, but when I input a company name from my database, some company names contain apostrophes (') and double quotes ("). Because of this.

Prepared statements are not handling apostrophes and commas correctly in my case. How can I resolve this conversion issue?

Comments

James Su Feb 14 2025

Do you have a MOS account? You can see the solution here:

https://support.oracle.com/knowledge/Oracle%20Cloud/2767882_1.html

BTW the toad behavior is normal and I usually choose rollback.

ronald_2017 Feb 15 2025

No, I don't have. Can you please copy paste the solution? Thanks.

James Su Feb 15 2025

Please leave an email address.

ronald_2017 Feb 15 2025

I log in. However, it asks Support Identifier. What should I write?

Thanks

James Su Feb 16 2025

You need to purchase the service to see the content.

I may be able to help you in private but if you don't want to post your email I have no way to contact you.

ronald_2017 Feb 16 2025

First of all thanks for your help. My words are not for you. The illogical thing is why should I purchase the service in order to solve the problem which caused by Oracle. What is Oracle support is used for? Besides, it used to be send dm in Oracle forum. Apparently, it is not active now. These kinds of restrictions are really ridiculous in today's world.

BluShadow Feb 17 2025

Oracle support is for paying customers. Like most businesses, not everything is free.

A part of the contract with having support is that customers are not permitted to share the content that is given within support anywhere in public, hence why James cannot post the solution for you here.

For that error you're getting though, it's a bit of a deceptive message. You may want to look at your Firewall (or get your network guys to) as that's a likely cause.

ronald_2017 Feb 17 2025

For that error you're getting though, it's a bit of a deceptive message. You may want to look at your Firewall (or get your network guys to) as that's a likely cause.

After I login, I am redirected to registration page. I don't think it is related to firewall. It is written “Connect your User Account” and there is an item called Support Identifier. What should I type there?

Thanks.

Cookiemonster76 Feb 17 2025

I believe that BluShadow is talking about the error you're getting in toad there, not your issues with oracle support.

BluShadow Feb 17 2025

Indeed, I'm referring to the ORA-24757: duplicate transaction identifier
I'm not trying to tell you how to get into Oracle Support. For that you would need to have a customer support identifier CSID which you only get when you pay for support. If you're working for a company then maybe your company has support with Oracle? In which case your company would have someone who is the support administrator and can assign your login to have support with Oracle (they will tie up your login with the company's support identifier for you). In many companies this is a DBA who has this access.

ronald_2017 Feb 17 2025

First of all thanks for your support. The thing is, even I just select via db link I get ORA-24757 duplicate transaction identifier error. I didn't do any DML. I use it in my laptop, not for the company. It is for the educational purposes. Where should I check in firewall?

Cookiemonster76 Feb 17 2025

So where are these two DB's that you're linking together?

Is one of them on your laptop?

ronald_2017 Feb 17 2025

One is in my laptop. It is a test db. The other one is in my friend's virtual windows server. Maybe somethings need to be changed in the virtual server.

ronald_2017 6 days ago

What do you recommend? Thanks.

Cookiemonster76 5 days ago

Any and all firewalls between your laptop and the virtual windows server need to have the port(s) you're trying to use completely open.

Alternatively stop trying to link those 2 DBs.

Is there a specific reason you need to link to that DB?

If you're just trying out how DB links work you could just create a loopback link (one that connects to the same DB).

ronald_2017 3 days ago

Yes, I want to use dblink between each other. I just recreated the db link as shared this time. However, it gives another error. It works at first but then gives an error.

ronald_2017 3 days ago

I am just wondering that should I replace 'localhost' in the server's listener file with the server's IP address?

1 - 17

Post Details

Added on Feb 17 2025
0 comments
26 views