Recently I have been working on a project to provide data for a third party application, called ParcView. The PV is used to view data source from OPC and databases. The requirement of one data source is from Oracle database.
PV provides a system configuration of SQL templates for data source in data, current, tag list and tag information, four major areas (some others are rarely used). I have done a lots for SQL database server, and some of Oracle database. Based on the recommendation, if the template SQL scripts are too complicated, it is recommended to use stored procedures as a way to provide data.
In SQL SP, data source can be directly returned by using SELECT statement. However, in Oracle, this type of return is not available. What I found is that all the data row set has to be returned by a OUT parameter SYS_REFCURSOR type. This makes it is impossible for me to implement in the same way as I did for SQL server before.
I have tried another way, view with parameters. Basically, a package is defined with functions and procedures. They are in a structure of property: get in function and set in procedure. A local variable in the package as a storage for property values. Then the view references to the functions are parameter. Before calling the view, a PL/SQL command exec is called first. This strategy is back to he none-SQL query problem. PV does not have a way to call it. As a result, this strategy hits the dead wall again.
It is really hard for me to put scripts on database server side. The lesson I learned is that the PV should problem a kind of interface based APIs to allow plugin components. Now I recall that the provider of PV does have a way to add customized data source, but we have to ask the company to write codes to do it. They will charge for the service.
Maybe I should ask the computer to provide a component to allow customized plugin to provide data source.
Thursday, October 27, 2011
Procedures in Oracle Server and SQL Server
Posted by D Chu at 7:42 PM
Labels: C#, Design Pattern, PL/SQL, SQL
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment