Successful use of [Oracle.DataAccess.Client] is based on proper understanding of three separate parts of Oracle:
- SQL
- PL/SQL
- sql*plus
Here on dba.exchange the following questions target this topic:
How to differentiate between sql and pl/sql?
Execute pl sql script block in c?
What is the difference between terminating an oracle sql statement with semicolon?
The task I want finally to solve is a way to take an arbitrary sql*plus script and dissect it into parts, that can be handled by ADO.NET.
There is a codeplex Powershell project SQLPSX to which I contribute.
It's capabilities to handle sql-server scripts with the SQLIse module are quite useful.
But it's Oracle module OracleIse currently just handles single SQL statments like
select * from Test_call_count
or
update Test_call_count set count = count + 1
or
Create table Test_call_count (
count number(10)
)
Using ExecuteNonQuery it would be possible to execute simple blocks
begin; update Test_call_count set count = count + 1; end;
Later some support for client variables like
var r refcursor
will be needed to fetch the result sets from stored procedures and bind variables.
I hope, that this eventually becomes a CW where we collect some valuable links for the basic understanding of the Oracle query tools, which help all who want to dive into the Oracle DataAcess componets and me improving OracleIse.