How to return complex data to PL/SQL pkg from java running in JVM
Hi, I don't know where could I post this question, so I post it here.
In Oracle, we could create object as type, and can pass it to Java (powered by JDBC I guess, but I don't know how to, if some one know, please tell me where could get the good document to teach me about this), but is there any way could return complex data (maybe in Oracle Object Type) to PL/SQL (not using long & seperated by sign string / using middle table)?
If you know, please tell me how to / tell me the url or book name for how to do this, thanks!
with t as (
select 1 id,'a' type_cd from dual union all
select 1 id,'a' type_cd from dual union all
select 1 id,'b' type_cd from dual union all
select 2 id,'c' type_cd from dual union all
select 33 id,'b' type_cd from dual union all
select 33 id,'b' type_cd from dual union all
select 33 id,'c' type_cd from dual union all
select 33 id,'d' type_cd from dual union all
select 5 id,'c' type_cd from dual union all
select 5 id,'c' type_cd from dual
select id,
type_cd
from (
select id,
type_cd,
count(distinct type_cd) over(partition by id) cnt,
row_number() over(partition by id,type_cd order by 1) rn
from t
where type_cd = 'c'
and cnt = 1
and rn = 1
ID T
2 c
5 c
SQL>SY.
Similar Messages
-
Is it possible to return a data grid in sql developer from package?
Hi, I am in need of some help in returning a datagrid rather than just a list from a package. This is my package:
CREATE OR REPLACE PACKAGE BODY C_1
as
PROCEDURE COUNTING1 (C_YEARFROM IN NUMBER, C_TABLE_NAME IN VARCHAR2) is
yearCount NUMBER;
c_sql long;
BEGIN
execute immediate 'SELECT COUNT(DISTINCT SPECIES) FROM '||C_TABLE_NAME ||' WHERE year >2007' into yearCount;
dbms_output.put_line('Distinct species count: ' ||yearCount);
end counting1;
end c_1;
Is it possible to get the results of these in a table or data grid in sql developer, e.g. I would like to sort results etc rather than just a flat list? Something a bit more elegant then dbms_output.put_line?
Thanksyes, I copied the wrong code into the example - what I actually want to display in a grid is the following:
CREATE OR REPLACE PACKAGE RSET_CURSOR IS
cursor rs_cursor is select species, location from ot;
r_c rs_cursor%rowtype;
end;
create or replace package rset_cursor2
is
procedure printSpecies;
end rset_cursor2;
create or replace package body rset_cursor2
is
procedure printSpecies is
begin
open rset_cursor.rs_cursor;
loop
fetch rset_cursor.rs_cursor into rset_cursor.r_c;
exit when rset_cursor.rs_cursor%notfound;
dbms_output.put_line(rset_cursor.r_c.species);
end loop;
close rset_cursor.rs_cursor;
end;
end;
I have also just noticed the list I am getting is only including one column of data where it should include 2, have I omitted something?
Thanks -
How to filter complex data using pl/sql
Hello,
i have to filter some data from the table with 1millions rows in it.
here the requirement
for example table is TEST
id type
1 a
1 a
1 b
2 c
33 b
33 b
33 c
33 d
5 c
5 c
now i just want to display the results which contains type c only if id is with also connected other than c than i dont want to dislplay that results
so my result will look like .here i dont want to disply id 33 because some the id with 33 are connected with type other than c.
id type
2 c
5 c
so can please give me idea to make a query on that table
thanks in advancewith t as (
select 1 id,'a' type_cd from dual union all
select 1 id,'a' type_cd from dual union all
select 1 id,'b' type_cd from dual union all
select 2 id,'c' type_cd from dual union all
select 33 id,'b' type_cd from dual union all
select 33 id,'b' type_cd from dual union all
select 33 id,'c' type_cd from dual union all
select 33 id,'d' type_cd from dual union all
select 5 id,'c' type_cd from dual union all
select 5 id,'c' type_cd from dual
select id,
type_cd
from (
select id,
type_cd,
count(distinct type_cd) over(partition by id) cnt,
row_number() over(partition by id,type_cd order by 1) rn
from t
where type_cd = 'c'
and cnt = 1
and rn = 1
ID T
2 c
5 c
SQL>SY. -
How to find Installation Date for each SQL installation
Dear All,
I need a basic info. How to find installation date of each SQL instance (My environment running with multiple standalone/cluster instances)?
So, I need a query to find installation date easily (I don't want to check it in registry by manual). Thanks in advance...Hi Balmukund
This is the same answer that (1) Prashanth posted
from the start, letter on (2) Stan posted
this again with the same link, and now for the third time, (3) you posted it with the same link :-)
* This answer is correct for specific instance.
The OP asked a solution for several instances. Therefore he should execute this on each instance. As I mentioned he can do it dynamically on all instances, for example using powershell (basic logic is, first find all instances and than post this query in a
loop).
Ronen Ariely
[Personal Site] [Blog] [Facebook]
Then your answer is correct :)
Balmukund Lakhani
Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
This posting is provided "AS IS" with no warranties, and confers no rights.
My Blog |
Team Blog | @Twitter
| Facebook
Author: SQL Server 2012 AlwaysOn -
Paperback, Kindle -
Send Datetime2 value to a SQL Procedure from Java using Hibernate
Hi All,
I Have a Procedure which takes a parameter of type datetime2.
The procedure is called from Java Hibernate.
How can I Pass datetime2 value to SQL procedure from Java?
Thanks in advance,
Shraddha GoreYou may define a global empty array in some package. Then you can do:
SQL> CREATE OR REPLACE PACKAGE pkg
AS
g_empty DBMS_SQL.varchar2_table;
END pkg;
Package created.
SQL> CREATE OR REPLACE PROCEDURE p (
p_tuids IN DBMS_SQL.varchar2_table "DEFAULT pkg.g_empty"
AS
BEGIN
NULL;
END p;
Procedure created.
SQL> BEGIN
p ();
END;
PL/SQL procedure successfully completed. -
If you use the WCF-SQL adapter it is recommend that you set UseAmbientTransaction to true if you are changing data. I think this requires MSDTC to be enabled on the SQL server that you are changing the data on. (http://msdn.microsoft.com/en-us/library/dd787981.aspx)
I think that Availability groups does not support MSDTC. (http://msdn.microsoft.com/en-us/library/ms366279.aspx).
How can you change data on a SQL 2012 application database that uses availability groups from BizTalk server?Hi,
Yes, Availability groups doesn't support MSDTC. Please refer to the similar discusison which maybe helpfull:
http://dba.stackexchange.com/questions/47108/alwayson-ag-dtc-with-failover
http://stackoverflow.com/questions/17179221/msdtc-in-always-on-availability-groups -
How to export a data as an XML file from oracle data base?
could u pls tell me the step by step procedure for following questions...? how to export a data as an XML file from oracle data base? is it possible? plz tell me itz urgent requirement...
Thankz in advance
BalaSQL> SELECT * FROM v$version;
BANNER
Oracle DATABASE 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS FOR 32-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
5 rows selected.
SQL> CREATE OR REPLACE directory utldata AS 'C:\temp';
Directory created.
SQL> declare
2 doc DBMS_XMLDOM.DOMDocument;
3 xdata XMLTYPE;
4
5 CURSOR xmlcur IS
6 SELECT xmlelement("Employee",XMLAttributes('http://www.w3.org/2001/XMLSchema' AS "xmlns:xsi",
7 'http://www.oracle.com/Employee.xsd' AS "xsi:nonamespaceSchemaLocation")
8 ,xmlelement("EmployeeNumber",e.empno)
9 ,xmlelement("EmployeeName",e.ename)
10 ,xmlelement("Department",xmlelement("DepartmentName",d.dname)
11 ,xmlelement("Location",d.loc)
12 )
13 )
14 FROM emp e
15 , dept d
16 WHERE e.DEPTNO=d.DEPTNO;
17
18 begin
19 OPEN xmlcur;
20 FETCH xmlcur INTO xdata;
21 CLOSE xmlcur;
22 doc := DBMS_XMLDOM.NewDOMDocument(xdata);
23 DBMS_XMLDOM.WRITETOFILE(doc, 'UTLDATA/marco.xml');
24 end;
25 /
PL/SQL procedure successfully completed.
. -
How to transport the data contains in the table from development to product
How to transport the data contains in the table from development to production.
Please let me know ASAP.Hello Dilip
Create a workbench request and add the following entries to the request:
Object key: R3TR TABU <name of z-table>
For this object add the following value key:
- client-independent table: '*'
- client-dependent table (e.g. client 100): '100*'
See also: [SAP Network Blog: Transport Table Entries|/people/community.user/blog/2007/01/07/transport-table-entries]
Regards
Uwe -
Hi ALL,
Can any one help us regarding How to fecth the Date column(or month column) from the file name specified in the path in a generalized way .
For example :
file name is :subscribers (Cost) Sep13.csv is specified in the below path
E:\Accounting\documents\subscribers (Cost) Sep13.csv
here I need to fetch the "Sep13" as a Date column in the ODI 11g in the generalized way.
Can any one help us in this case as early as possible.I would suggest using a piece of Jython code for this. Something like this...
import os
import os.path
filelist = os.listdir(E:\Accounting\documents\)
for file in filelist:
datestr = file[19:-4]
You'd need to work out what to do with datestr next... perhaps write it to a table or update an ODI variable with it.
Hope this is of some help. -
How to isolate the Sql Statement from Java Code
Hi
I Need to know that can we segregate the Sql Statements and convert them to Stored Procedures so as to isolate the Sql statements from Java Code.
So i have one static web page which uses four select Statements so what i want is to create a stored procedure encapsulating these queries. So that the Java Web Developer will simply call the Stored Procedure instead of using four different SQL Statements.
Suppose the developer has these four Statements
Select ename,empno,sal,job from emp;
select empno,ename,mgr from emp;
select deptno,dname from dept;
select emp.ename,emp.empno,emp.deptno,dept,dname fromemp,dept;
So can i encapsulate these four Sql Statements in one Procedure and the Web developer can call the Store procedure and dont need to write the Sql Statements in his code.
Can Anybody guide me how to write this Stored type of Store procedure.
Thankshttp://www.google.com/search?q=java+windows+registry
Next time, search yourself. It might be beyond your belief, but you're really, really not the first person to wonder about this. -
Calling SQL packages from java
How do I call ORACLE sql packages from java?
We are still using Oracle 7.3. Any sample code
would be appreciated.utility.processPLSQL( connRisk,
" Begin "
+ " hvar_sum.p_load_var_summary_data("
+ " '" + dfCall.format( priceDate ) + "', "
+ " '" + promptMonth + "',"
+ daysBack + ","
+ aliasType + ","
+ "'" + connRisk.owner + "'"
+ "); "
+ " end ; ",
"Load VaR Summary Data",
utility.noLogMsg ) ;
public boolean processPLSQL(
MyConnection conn,
String sql,
String dataType,
boolean createLogMessage ) {
double startTime = conn.log.getStartTime() ;
try {
CallableStatement cs = conn.theConnection.prepareCall(sql);
cs.execute() ;
cs.close() ;
conn.theConnection.commit();
if ( createLogMessage ) conn.log.logTiming( dataType, startTime ) ;
} catch ( SQLException e ) {
conn.log.logError( "Utility.processPLSQL; SQLException Error: " + e ) ;
System.out.println(new java.util.Date().toString() + "; User: " + conn.user
+ "; SQL: " + sql );
return false ;
return true ;
} -
Calling a PL/SQL function from java
I would like to call a pl/sql function from java. My pl/sql function is taking arrays of records as parameters. How do i proceed? Which specific oracle packages do I have to import?
Please send an example.
TIA,
Darko GuberinaDocumentation here: http://download-uk.oracle.com/docs/cd/B14117_01/java.101/b10983/datamap.htm#sthref185
says JPublisher can publish records too.
But when I change the example given at http://download-uk.oracle.com/docs/cd/B14117_01/java.101/b10983/datamap.htm#sthref190 as following:
PACKAGE "COMPANY" AS
type emp_rec is record (empno number, ename varchar2(10));
type emp_list is varray(5) of emp_rec;
type factory is record (
name varchar(10),
emps emp_list
function get_factory(p_name varchar) return factory;
END;
then I see <unknown type or type not found> at sql or java files generated. Any ideas? -
Calling oracle SQL Loader from java program
Hi,
I want to insert data into oracle tables from a text files containing fixed length fields. I am using SQLLoader to achieve this. The requirement is to call the SQLLoader within the java program.
Does anyone know how to call SQL Loader from java program?
Thanks,
VarshaSimply "exec" the sqlldr program with the parameters you need to pass to it.
Runtime.exec (........)
Try to pass all parameters needed including the username and password, and use the option "silent" to avoid output, and the option "log" to have a log file of the modifications that sqlldr has done to the database. -
Error PLS-00306 during calling PL/SQL function from Java
Hi all,
I am facing a problem during call of oracle PL/SQL function from java using CallableStatement.
I receive following error message.
java.sql.SQLException: ORA-06550: line 1, column 13:
PLS-00306: wrong number or types of arguments in call to 'EXPORT_HIST_ALARMS_FUNC'
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
As per above error EXPORT_HIST_ALARMS_FUNC in oracle has this signature.
CREATE OR REPLACE FUNCTION EXPORT_HIST_ALARMS_FUNC(startDateTime VARCHAR2, endDateTime VARCHAR2, meType VARCHAR2) RETURN VARCHAR2 IS
END EXPORT_HIST_ALARMS_FUNC;
Above function I have called following way in java.
String sql = "begin ?:= EXPORT_HIST_ALARMS_FUNC(?, ?, ?); end;" ;
CallableStatement cStatement = null;
cStatement = connection.prepareCall(sql);
cStatement.registerOutParameter(1,Types.VARCHAR);
cStatement.setString(2,startDateTime);
cStatement.setString(3,endDateTime);
cStatement.setString(4,meType);
cStatement.execute();
msg = cStatement.getString(1);
Actually above function requires three input parameters and one return parameter.
During execution of above java code it throws SQLException and shows PLS-00306: wrong number or types of arguments in call to 'EXPORT_HIST_ALARMS_FUNC' error.
I have run this function directly from oracle with three parameters and run successfully and finally it returns string.
But I am unable to figure out why it doesn't run from above java code.
Please help regarding this.
Thanks.
Regards,
Shardul BankerTry this:
String sql = "begin ?:= EXPORT_HIST_ALARMS_FUNC(?, ?, ?); end;" ;
CallableStatement cStatement = null;
cStatement = connection.prepareCall(sql);
cStatement.registerOutParameter(1,Types.VARCHAR);
cStatement.setString(1,startDateTime);
cStatement.setString(2,endDateTime);
cStatement.setString(3,meType);
cStatement.execute();
msg = cStatement.getString(1);Regards,
Martijn Teigeler
Edited by: mTeigeler on Oct 13, 2007 10:22 AM -
Connect to MS Sql Server from Java Source
Hi,
Is there any way I could connect to ms sql server from Java source? I know I can call java source from function thats easy but what I really want is capability to connect to non-oracle(MS SQL server) from my java source and then call it from function.
I don't know if JDBC driver for SQL server is even installed/available. Is there a way I could find it out form my IDE? I know sqlJ does compile but I have never used sqlj. help!!!
SinhaYou'll probably have better luck in a Java forum or a Microsoft forum.
Maybe you are looking for
-
I lent my iphone 4s to a friend who set it up with his Icloud and when I tried to do deactivate the phone so I could start using it again with my Icloud It now asks for the previous persons email adress and password. He now can remeber either and we
-
Unable to connect to internet on ALL computers
I am having difficulties connecting to my wireless internet through my computer. When I select the network it comes up with a box asking me for my WEP password. Once I enter it, it says "Connection Timeout". This is happening to four different macboo
-
Not set userName and password in system.prefs for 2.2.5
We are using KODO 2.2.5 right now and We have business requirement that we should not keep database user name and password in system.prefs. I followed the instructions that you wrote in Feb 12 2002 post. But it still has the error that exactly like B
-
Argh, lost data, can someone help
A week ago or so I updated to the iOS 4 on my iPhone 3GS. Pretty smooth update, everything seemed to be working, expect I had zero data services. Email, web, etc, all down. Voicemail did not work, SMS did, but MMS did not. I am on AT&T. I did some go
-
Upload Best Practices in SolMan
Hello forum, Please can one of you explain me how to upload Best Practices in Solution manager? I would like to upload the WholeSale Distribution package V1.600. I need to know where I can find this package and then how to upload it? Thanks in advanc