Problem of getting Result Set from Oracle 9iDB
I have Oracle 9i DB installed on Win NT system. I created a SCHEMA called SCHATTOP and created a TABLE TEAM. From Oracle SQL*Plus screen, I signed on with userID "SCHATTOP", and my password "ANU1SAL". Then at SQL> Connect SCHATTOP/ANU1SAL .. Getting msg Connected. Then I am doing Select * from SCHATTOP.TEAM; It shows the contents of the table. But when I wrote a small program like this .. when I am calling the program I am getting this msg
java DBLookup
Connection Successful to Oracle DataBase .. !!!!
SQLException caughtORA-00600: internal error code, arguments: [ttcgcshnd-1], [0], [], [], [], [], [], []
$
This is my program :
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBLookup {
public static void main(String[] args) throws Exception {
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
String url= "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(HOST=9.5.185.229)(PROTOCOL=tcp)(PORT=1521))(CONNECT_DATA=(SID=SAL400)))";
con = DriverManager.getConnection(url,"SCHATTOP","ANU1SAL");
System.out.println("Connection Successful to Oracle DataBase .. !!!!");
stmt = con.createStatement( );
rs = stmt.executeQuery("SELECT * FROM SCHATTOP.TEAM");
while (rs.next()) {
System.out.println(rs.getString("FN") + " " + rs.getString("LN"));
catch (SQLException e) {
System.out.println("SQLException caught" + e.getMessage( ));
finally {
try {
if (con != null) con.close( );
catch (SQLException ignored) { }
Any help will be appreciated.
Typically this error happens if a client tries to access a 9.0.1 database with an old 8.1.7 jdbc driver.
This should be fixed in the jdbc driver of the 8.1.7.2.1 Patchset for Windows.
Cheers
Stefan
Similar Messages
-
Which is more efficient way to get result set from database server
Hi,
I am working on a project where I require to query database to fetch result set and then iterate through the resultset. Now, What I want is that I want to create one single java code that would call many different SQLs and create a list out of resultset. There are two approaches for me.
1.) To create a txt file where I can store my queries. My java program can read this file and get the appropriate query to be used.
2.) To create a stored procedure containing the queries and call the stored procedure from my java program. Also, not that some of the queries needs to be created dynamically depending upon the parameteters supplied.
Out of these two approches which is optimum and why?
Also, following things to be noted.
1. At times I want to create where clause of the query dynamically depenending upon the parameters passed.
2. I want one single java file that will handle all database calls.
3. Paramters to the stored procedure can be passed using array descriptor.
4. Conneciton I am making using JNDI.
Please do provide me optimum way of out these two. You may also suggest some other approaches, if any.
Thanks,
Rajan
Edited by: RP on Jun 26, 2012 11:11 PMRP wrote:
In case of queries stored in text files. I will require to replace some pre defined placeholder with actual parameters and then pass that modified query to db engine. Even I liked the second approach as it is more easily maintainable. There are a couple of issues. Shared SQL is one. Irrespective of the method used, the SQL cursor that is created needs to have bind variables. This ensures re-usability of the cursor. This reduces the risk of Shared Pool fragmentation. This lowers hard parsing and reduces CPU utilisation.
Another issue is flexibility. If the SQL cursors are created by stored procedures, this code resides on the server and abstracts the Java client from the complexities of SQL and SQL performance. The code can easily be updated and fine tuned to deliver faster/better SQL cursors, or modified to take new Oracle features, changes in data model, and so on, into consideration. This stored proc can be updated without having to touch or recompile a single byte of Java client code.
There's also the security issue. What is more secure? SQL encapsulated in stored procs in a secure database and server environment? Or SQL "encapsulated" in text files on the client?
The less code you have running on the client, the less code you have running in the wild that can be compromised without having to first compromise the server.
Only I was worried about any performace issue might happen using this approach. Performance is not a factor of who creates the SQL cursor.
Whether Java client creates a SQL cursor, or a PL/SQL stored proc creates a SQL cursor, or a .Net client creates a SQL cursor - that SQL cursor does not know what the client is. It does not care what the client is. The SQL cursor performs as well as it is capable of.. given the execution plan, data volumes, server resources and speed/performance of the server.
The client language and SQL cursor interface used by the client (there are several in PL/SQL), determines the performance of the client's interaction with the cursor (e.g. round trips to the database when interfacing with the cursor). The client language (and its client interface to the cursor) does not dictate the actual performance of that SQL cursor on the database (does not make joins faster, or I/O faster)
One more question, Will my java program close the cursor that I opened in Procedure?That you need to ask your Java code. Java code leaking ref cursors are unfortunately all too common. You need to make sure that your Java client interface to SQL cursors, closes the cursor handle when done. -
So I have a chunk of data that only resides in Oracle. So I need to capture that information from Oracle. Now before you get over zealous, I did try with an OPENQUERY and it took FOREVER! And I don't know why the OPENQUERY took FOREVER but if I run the same
query directly against Oracle it runs very quickly...like 20 seconds.
So now I'm wondering...can I build a dataset in my SSRS Report that uses an Oracle Data source and an Oracle Stored Procedure in its Dataset that I'll create to aggregate this subset of data and then utilize its result set back in my main reporting
Dataset that will utilize SQL Server? And how can I do that? Can I make my main Dataset reference, say, a #TemporaryTable that is created from my Oracle Dataset in its
I'll continue to Google a few things as I await your review and hopefully a reply.
Thanks in advance for your help.Hi ITBobbyP,
According to your description you want to use data from a Oracle data source into a DataSet which retrieving data from SQL Server. Right?
In Reporting Services, we can have multiple data sources in one project pointing to different database. And we can use separated dataset to retrieve data from different data source. However, it's not supported to combine the two datasets together
directly. We can only use Lookup(), LookupSet() function to combine fields from different dataset into one tablix when there are common columns between two datasets. This is the only way to make tow result sets together in SSRS.
Reference:
Lookup Function (Report Builder and SSRS)
LookupSet Function (Report Builder and SSRS)
Best Regards,
Simon Hou
TechNet Community Support -
Please, Not getting result set from callable statement (Code posted)
I am posting some simple code which should get a ResultSet from a CallableStatement object using the executeQuery() Method.
It is returning "No RsultSet was produced"
If I modify the code and simply output the CallableableStatement using its executeUpdate() then getString() methods it works fine. Anything obviously wrong with this bit of code? Thanks.
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import db.util.query.*;
import db.util.pool.*;
public class oracle extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, java.io.IOException {
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
Connection con = ConnectionFactory.getConnection();
CallableStatement cs = null;
ResultSet rs = null;
int intID = 1;
try{
cs = con.prepareCall("{? = call test1(?)}");
cs.registerOutParameter(1, java.sql.Types.VARCHAR);
cs.setInt(2,intID);
/*These lines work on their own
*cs.executeUpdate();
*out.println("Name is : " + cs.getString(1));
//this code is what is not working...hmm
rs = cs.executeQuery();
while(rs.next()){
out.println(rs.getString("name"));
rs.close();
cs.close();
//the rest of this works too.
ConnectionFactory.releaseConnection(con);
catch(SQLException e){
out.println(e.getMessage());
Here's the stored procedure. I'm just trying to do a simple test to return multiple rows. The table has numberous records with the same id which is being passed to the function.
create or replace function test1 ( strInputID IN testtable.id%type)
return varchar2
is
strOutputName testtable.name%type;
found_it EXCEPTION;
begin
select name into strOutputName from testtable
where id = strInputID;
raise found_it;
exception
when no_data_found
then
return null;
when found_it
then
return strOutputName;
end;I've posted the code...it's doing a select. I think the problem is that to return multiple rows I need to return a cursor. But I've run into problems with both the MS and Oracle Drivers.
All I really want to do is to query a database using a callable statement(function in oracle) which will return multiple rows which I can process. I have been trying to do this in a servlet.
I can do it successfully for one column from one row, but not multiple columns from mulitple rows.
I've been searchging for some good examples and am trying different things but can't seem to get it to work. -
Getting result set from stored procedures in database controls in weblogic
I am calling a stored procedure from database control which actually returns a result set
when i call the stored procedure like
* @jc:sql statement="call PROC4()"
ResultSet sampleProc() throws SQLException;
it gives me exception saying
"weblogic.jws.control.ControlException: Method sampleProc is DML but does not return void or int"
I would appreciate any help
Thanks,
UmaThanks for you reply!
1) The stored procedure has head
CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
cv_1 IN OUT SYS_REFCURSOR
AS
err_msg VARCHAR2(100);
BEGIN
--Adaptive Server has expanded all '*' elements in the following statement
OPEN cv_1 FOR
Select ...
commit;
EXCEPTION
WHEN OTHERS THEN
err_msg := SQLERRM;
dbms_output.put_line (err_msg);
ROLLBACK;
END;
If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
2) But when call stored procedure, it will take 80-100 minutes .
3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
AS
BEGIN
select ..
The select part is exact same.
4) The perl code is almost exact same, except the query sql:
sybase verson: my $sql ="exec DISPLAY_ADDRESS";
and no need bind the cursor parameter.
This is batch job, we create a file with all information, and ftp to clients everynight.
Thanks!
Rulin -
How to export result set from mysql query browser to .sql in oracle
Hi folks:
I was trying to export result set from MySql query browser to Oracle. I could able to do
File->Export Result Set-> Excel format...
What I am trying to get is .sql file so that I can run it as a script in my oracle db. Is there any way we can get .sql file with inserts and delimeters ....?
Did you guys get my question.?
Please throw some light on this....
Could be very appreciable ....
Thanks
Sudhir NaiduHi
Create a sql statement which generates the insert statements.
Something like this:
select 'insert into table1 (column1, column2, column3) values (' ||
column1 || ', ' || column2 || ', ' || column3 || ');' from table 1;
The || sign is the string concatenation sign in Oracle, replace it the appropriate sign in MySql. Export the result set of this query into a file, and you can run it in a SqlPlus.
Ott Karesz
http://www.trendo-kft.hu -
It is required to get the result set from the last query.
I need this SP to return the result set from the last query.
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
alter proc spQ_GetASCBillingRateIDs2
@ScheduleID CHAR(15),
@startdate smalldatetime,
@enddate smalldatetime
as
set nocount on
truncate table tbltmpgroup
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tbltmptbltest]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tbltmptbltest]
exec sp_CreateTblTmpGroup
insert into tbltmpgroup
SELECT DISTINCT
case when pd.billparent = 'N' then org.eligibleorgid
else isnull(af.parentid, org.eligibleorgid) end as billorgid,
pd.individualbill , pd.cobrabill, pd.billparent,
org.eligibleorgid, org.polid, org.orgpolicyid,
pp.planid, pp.rateid,
ps.ascinvoicedate,
case when ps.ascclaimfromdate > @startdate then ps.ascclaimfromdate
else @startdate end as premiumrundayFrom,
case when ps.ascclaimtodate < @enddate then ps.ascclaimtodate
else @enddate end as premiumrundayTo,
fts.effdate, fts.termdate,
case when fts.effdate > @startdate then fts.EffDate
else @startdate end as ascStartDate,
case when fts.termdate < @enddate then fts.termdate
else @enddate end as ascEndDate
FROM premiumschedule ps (nolock)
inner join orgpolicy org (nolock)
on org.ascinvoicerungroup between ps.premiumrundayfrom and ps.premiumrundayto
inner join FundingTypeStatus fts
on fts.orgpolicyid = org.orgpolicyid
and fts.fundtype = 'ASC'
and ((fts.effdate between @startdate and @enddate)
or (fts.termdate between @startdate and @enddate)
or (fts.effdate < @startdate and fts.termdate > @enddate))
inner join eligibilityorg o (nolock)
on org.eligibleorgid = o.eligibleorgid
inner join policydef pd (nolock)
on pd.polid = org.polid
inner join policyplans pp (nolock)
on pp.polid = org.polid
inner join program p (nolock)
on pd.programid = p.programid
left join orgaffiliation af with (nolock)
on org.eligibleorgid = af.childid
WHERE ps.premiumscheduleid = @ScheduleID
AND org.orgpolicyid <> ''
go
SELECT DISTINCT z.rateid, e.enrollid, z.ascstartdate, z.ascenddate
into tbltmptbltest FROM enrollment E (nolock)
inner join tbltmpgroup z
on e.rateid = z.rateid
go
CREATE UNIQUE CLUSTERED INDEX IDXTempTable ON tbltmptbltest(enrollid)
create index IDXTemptableDates on tbltmptbltest(ascstartdate,ascenddate)
go
select distinct t.*
from tbltmpgroup t
where rateid in (
select distinct t.rateid from VW_ASC_Billing)
order by billorgid
set nocount off
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GOPlease post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules (you have no idea).
Temporal data should use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect.
What you did post is bad SQL.
The prefix “tbl-” is a design flaw called tibbling and we do not do it. We seldom use temp tables in RDBMS; it is how magnetic tape file programmers fake scratch tapes.
If the schema is correct, then SELECT DISTINCT is almost never used.
Your “bill_parent” looks like a assembly language bit flag; we never use those flags in SQL.
“Funding_Type_Status” is an absurd name for a table. A status is a state of being, not an entity. A type is an attribute property. So this table ought to be column that is either a “funding_type” or “funding_status” (with the time period for the state of being
shown in other columns). But this hybrid is not possible in a valid data model.
Want to try again, with DDL and some specs?
--CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
in Sets / Trees and Hierarchies in SQL -
Need help in restricting a result set from a UNION in MERGE
Hello,
Would really appreciate if anybody could help me out with the issue I am facing with the below statements (I am new to Oracle ):
merge into table_name_1 p
using
select p_key, value_1, value_2
from some_tables
UNION
select p_key, value_1, value_2
from some_tables
UNION
)t
on (p.p_key = t.p_key)
when matched then
update table_name_1 with value_1 and value_2
when not matched then
insert table_name_1 with p_key, value_1, value_2;
Now, the union of all those selects gives me distinct values and it works most of the times but when I get values like below, the merge fails:
p_key-----value_1-----value_2
100-----25-----50
100-----NULL-----50
I browsed the net and understood the reason behind this: the result set becomes ambiguous and merge doesn't know which row to insert first and which one to update.
Now, my requirement is: I could have any of the below scenario/result sets from the union and I need only 1 row per p_key -
result_set_1
p_key-----value_1-----value_2
100-----25-----50 ***************need this row
100-----NULL-----50
100-----NULL-----NULL
result_set_2
p_key-----value_1-----value_2
100-----25-----NULL ***************need this row
100-----NULL-----NULL
result_set_3
p_key-----value_1-----value_2
100-----25-----NULL ***************need this row (p_key = 100)
100-----NULL-----NULL
200-----NULL-----75 ***************need this row (p_key = 200)
200-----NULL-----NULL
300-----90-----95 ***************need this row (p_key = 300)
So, I basically need a way to restrict the values that I will get from the UNION of all those selects to fit the requirement above, hope I was able to explain the issue I am facing.
Any help would be greatly appreciated.
Thanks,
DpunkIn all cases the goal is to find an order by value that will make the row you want be first.
The query I gave is calculating a priority for each row by adding up values showing whether each column is null or not null. The case statements check whether each column is null and need to be added up to give a total priority value.
Value_1 Value_2 Priority
Not Null Not Null 2 + 1 = 3
Not Null Null 2 + 0 = 2
Null Not Null 0 + 1 = 1
Null Null 0 + 0 = 0
The priority value ends up being a bitmap showing whether each value is null or not null. I think that reflects my mathematics background.
Another way of getting the same result (suggested to me by your asking why it needs the "+") would be to use two CASE expressions as separate order by items:
select p_key, value_1, value_2 from
(select p_key, value_1, value_2, row_number() over
(partition by p_key
order by case when value_1 is null then 0 else 1 end DESC,
case when value_2 is null then 0 else 1 end DESC
) as rn
from (your UNION query here)
where rn = 1
A third way is to use a more complex case statement:
select p_key, value_1, value_2 from
(select p_key, value_1, value_2, row_number() over
(partition by p_key
order by case when value_1 is NOT null and value_2 is NOT null then 1
when value_1 is NOT null and value_2 is null then 2
when value_1 is null and value_2 is NOT null then 3
when value_1 is null and value_2 is null then 4
end ASC
) as rn
from (your UNION query here)
where rn = 1 -
Performance to fetch result set from stored procedure.
I read some of related threads, but couldn't find any good suggestions about the performance issue to fetch the result set from a stored procedure.
Here is my case:
I have a stored procedure which will return 2,030,000 rows. When I run the select part only in the dbartisan, it takes about 3 minutes, so I know it's not query problem. But when I call the stored procedure in DBArtisan in following way:
declare cr SYS_REFCURSOR;
firstname char(20);
lastname char(20);
street char(40);
city char(20);
STATE varchar2(2);
begin DISPLAY_ADDRESS(cr);
DBMS_OUTPUT.ENABLE(null);
LOOP
FETCH cr INTO firstname,lastname,street, city, state;
EXIT WHEN cr%NOTFOUND;
DBMS_OUTPUT.PUT_LINE( firstname||','|| lastname||','|| street||',' ||city||',' ||STATE);
END LOOP;
CLOSE cr;
end;
It will take about 100 minutes. When I used DBI fetchrow_array in perl code, it took about same amount of time. However, same stored procedure in sybase without using cursor, and same perl code, it only takes 12 minutes to display all results. We assume oracle has better performance. So what could be the problem here?
The perl code:
my $dbh = DBI->connect($databaseserver, $dbuser, $dbpassword,
{ 'AutoCommit' => 0,'RaiseError' => 1, 'PrintError' => 0 })
or die "couldn't connect to database: " . DBI->errstr;
open OUTPUTFILE, ">$temp_output_path";
my $rc;
my $sql="BEGIN DISPLAY_ADDRESS(:rc); END;";
my $sth = $dbh->prepare($sql) or die "Couldn't prepare statement: " . $dbh->errstr;
$sth->bind_param_inout(':rc', \$rc, 0, { ora_type=> ORA_RSET });
$sth->execute() or die "Couldn't execute statement: " . $sth->errstr;
while($address_info=$rc->fetchrow_arrayref()){
my ($firstname, $lastname, $street, $city, $STATE) = @$address_info;
print OUTPUTFILE $firstname."|".$lastname."|".$street."|".$city."|".$STATE;
$dbh->commit();
$dbh->disconnect();
close OUTPUTFILE;
Thanks!
rulinThanks for you reply!
1) The stored procedure has head
CREATE OR REPLACE PROCEDURE X_OWNER.DISPLAY_ADDRESS
cv_1 IN OUT SYS_REFCURSOR
AS
err_msg VARCHAR2(100);
BEGIN
--Adaptive Server has expanded all '*' elements in the following statement
OPEN cv_1 FOR
Select ...
commit;
EXCEPTION
WHEN OTHERS THEN
err_msg := SQLERRM;
dbms_output.put_line (err_msg);
ROLLBACK;
END;
If I only run select .. in DBArtisan, it display all 2030,000 rows in 3:44 minutes
2) But when call stored procedure, it will take 80-100 minutes .
3) The stored procedure is translated from sybase using migration tools, it's very simple, in sybase it just
CREATE PROCEDURE X_OWNER.DISPLAY_ADDRESS
AS
BEGIN
select ..
The select part is exact same.
4) The perl code is almost exact same, except the query sql:
sybase verson: my $sql ="exec DISPLAY_ADDRESS";
and no need bind the cursor parameter.
This is batch job, we create a file with all information, and ftp to clients everynight.
Thanks!
Rulin -
Problem in getting parameter value from selection screen in web dynpro abap
Hi,
I am facing problem in getting parameter value from selection screen.
Please find my code below:
DATA LT_PAR_ITEM TYPE IF_WD_SELECT_OPTIONS=>TT_SELECTION_SCREEN_ITEM.
FIELD-SYMBOLS:<FS_PAR_ITEM> LIKE LINE OF LT_PAR_ITEM,
<FS_OBJ_USAGE> TYPE REF TO data.
WD_THIS->M_HANDLER->GET_PARAMETER_FIELDS( IMPORTING ET_FIELDS = LT_PAR_ITEM ).
LOOP AT LT_PAR_ITEM ASSIGNING <FS_PAR_ITEM>.
CASE <FS_PAR_ITEM>-M_ID.
WHEN `OBJ_USAGE`.
ASSIGN <FS_PAR_ITEM>-M_VALUE->* TO <FS_OBJ_USAGE>.
[ Here, sy-subrc is 4, <FS_OBJ_USAGE> is not assigning.]
ENDCASE.
ENDLOOP.
So, can any one solve this problem.
Thanks in advance,
RadhikaHi Radhika,
Try using GET_RANGE_TABLE_OF_SEL_FIELD...
Please Refer below code..
DATA: NODE_FLIGHTS TYPE REF TO IF_WD_CONTEXT_NODE.
DATA: RT_CARRID TYPE REF TO DATA.
DATA: ISFLIGHT TYPE TABLE OF SFLIGHT.
DATA: WSFLIGHT TYPE SFLIGHT.
FIELD-SYMBOLS: <FS_CARRID> TYPE TABLE.
Retrieve the data from the select option
RT_CARRID = WD_THIS->M_HANDLER->GET_RANGE_TABLE_OF_SEL_FIELD( I_ID = 'S_CARR_ID' ).
Assign it to a field symbol
ASSIGN RT_CARRID->* TO <FS_CARRID>.
CLEAR ISFLIGHT. REFRESH ISFLIGHT.
SELECT * INTO CORRESPONDING FIELDS OF TABLE ISFLIGHT FROM SFLIGHT
WHERE CARRID IN <FS_CARRID>.
NODE_FLIGHTS = WD_CONTEXT->GET_CHILD_NODE( NAME = `FLIGHTS` ).
NODE_FLIGHTS->BIND_ELEMENTS( ISFLIGHT ).
Thanks,
Regards,
Kiran -
JDBC Result Set from Non-Database Source
In Java, is it possible to create a result set from a non-database data source?, for example an XML file, text file, vectors, java beans
We have a Swing application that currently makes direct JDBC calls to the DB2 database for creating result sets. We want to replace JDBC calls with calls to web service, but want to still create result sets on the client, so the replacement of the datasource from database to web service call is transparent to the rest of the code.In Java, is it possible to create a result set from a
non-database data source?, Yes.
for example an XML file,
text file, vectors, java beans
We have a Swing application that currently makes
direct JDBC calls to the DB2 database for creating
result sets. We want to replace JDBC calls with calls
to web service, but want to still create result sets
on the client, so the replacement of the datasource
from database to web service call is transparent to
the rest of the code.You might want to think carefully about what you are doing.
It is fairly easy, although somewhat tedious (many methods,) to create a new type of ResultSet.
But if the above application is doing SQL via statements and expecting the result via a ResultSet then you are not just creating a ResultSet but an entire driver and one that will have to deal with SQL as well. And if you have to handle the SQL itself that means you will probably need a parser and interpreter. -
I am facing problem to get text file from application sever
Hi This is lokesh.
Actually my requirement is to craete sales orders by getting file from other server.for that i have used shell script to connect that server.Ok i am connecting to that different server(not sap server) successfully.
But my problem is getting text file from application SERVER.
That different server people will send the file name as 'DDHHMMSS' (Days,Hours,Minutes,Seconds).
Just suppose if they will send today means that file name will come as 20103025. and with in half an hour if they again send that file file means that file name as '20110025'.
like that file name is always varies.So how can i read that type of text files from the application server.
and one more thing that is there chance to read morethan one text file from application server.
Pls guide me if u know the solution.PLs this requirement is urgent.
Regards,
LokeshgoudHi..,
<b>Just execute this program ... this is for the files received in JUST 3 MINS...</b>
change it according to your requirement !!
data time type sy-uzeit value '100000'. <i>"<<----start time</i>
data file(8) type c value '20'.
do 180 times. <i>" <<----- for 3 minutes</i>
add sy-index to time.
concatenate file time into file.
write / file.
OPEN DATASET FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC EQ 0.
PERFORM READ_DATASET.
ENDIF.
file = '20'.
time = '100000'.
ENDDO.
<b>form read_dataset.
read the file here with the file name <b>FILE</b>.
endform.</b>
regards,
sai ramesh -
Getting result set in OCCI from PL/SQL proc
I need help retrieving a result set in my OCCI application when i
call a PL/SQL proc. Here is the proc that i'm calling. What c++
code do i need to use to get the rows returned.. Do i need to
pass anything for the 1st parameter?
PROCEDURE "SEL_PRODUCT_NAME_SP"
(LS_CUR_PKG IN OUT SEL_PRODUCT_NAME_PKG.ls_cur_product_name)
AS
BEGIN
OPEN LS_CUR_PKG FOR
SELECT PRODUCT_NAME
FROM PRODUCT.PRODUCT;
END;;
---- Here is the package
IS TYPE lr_product_name IS RECORD
(LS_PRODUCT_NAME VARCHAR2(50));
TYPE ls_cur_product_name IS REF CURSOR
RETURN lr_product_name;
END;Here are the steps you need to follow to deal with REF CURSORS :
1. Use setSQL to prepare your SQL statement (an anonymous PL/SQL block that will call the procedure)
2. Call registerOutParam for the desired parameter
e.g., stmt->registerOutParam (1, OCCICURSOR);
(the REF CURSOR is the first and only parameter here)
3. Execute the statement
4. Call getCursor()
ResultSet *rs = stmt->getCursor (1);
5. Call rs->next(), rs->getXXX() ...
HTH. -
Problem with scrollable result set
hi
can u please tell me how i can get no of rows from a result set..
i am using thin drivers and connecting to remote database,every thing is working fine if i use fwd only type ,but if u use sensitive type it is giving error
code:
stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
i am geting error at this line
error :
java.lang.AbstractMethodError:oracle/jdbc/driver/oracleconnection.createStatement
please help medoes your jdk include jdbc 2.0? Is your driver updated to support jdbc 2.0 features? have you recently updated either(and forgot to change the classpath)?
I am running jdk 1.3 and oracle thin(classes12.zip) have not had problems creating/using scrollable resultsets??
Jamie -
Hi we are having problems with leaking database connections. We are using the jdbc debug features of oc4j (9.0.2).
Basically we connect to database 1, do a query and open a result set, then create a connection to database 2 and try to execute a query on it. The problem is that if the first's resultset is open, the debugging complains that there are multiple open result sets. This is leading to database connections not getting release when they should be.
Here's an example of the code we are using (which is in a stateless session bean):
public void test(){
try {
Connection connection;
DataSource dataSource;
Context context = new InitialContext();
dataSource = (DataSource) context.lookup(Constants.NHHDC_DATABASE);
connection = dataSource.getConnection();
PreparedStatement statement = null;
ResultSet resultSet = null;
statement = connection.prepareStatement(" SELECT 'X' FROM DUAL");
resultSet = statement.executeQuery();
resultSet.next();
DataSource reamsDataSource;
Context reamsContext = new InitialContext();
reamsDataSource = (DataSource) reamsContext.lookup(Constants.REAMS_DATABASE);
Connection reamsConnection = reamsDataSource.getConnection();
PreparedStatement reamsStatement = null;
ResultSet reamsResultSet = null;
reamsStatement = reamsConnection.prepareStatement("SELECT 'X' FROM DUAL");
System.out.println("LAST STATEMENT");
reamsResultSet = reamsStatement.executeQuery();
System.out.println("FINISHED");
reamsResultSet.close();
reamsStatement.close();
reamsConnection.close();
resultSet.close();
statement.close();
connection.close();
} catch (NamingException e) {
System.out.println("naming error " + e.getMessage());
} catch (SQLException e) {
System.out.println("sql error " + e.getMessage());
The error coming from the debug is:
*********** OPEN SETS: ************
java.lang.Exception: com.evermind.sql.DebugPreparedResultSet@5e9f1
Is it not possible to have 1 resultset open on one database and a separate one on a different database? I know the example above could be written to close the result set first, but this is a simplified example of something we are doing just to hightlight the problem.
Any ideas appricated on why this complains.
Thanks
Andrew Moorehi Andrew,
Just a hint: we are using more than 1 database connections at the same time. but in this case all datasources have to be non-emulated.
check this, maybe its the prob @ yours.
4 non-emulated datasources check the server guide of oc4j ..
http://technet.oracle.com/tech/java/oc4j/doc_library/902/servicesjun02/ds3.htm#1005742
cu
ed
Maybe you are looking for
-
Can anyone help to answer if I can share the same music account on itunes but still maintain separate calendars and address books on the same computer?
-
I plugged my Sony mp3 player into my mac mini, Snow Leopard, and it synced with my iphoto. Now it does not show up as a device anywhere, not even iphoto. When I plug in the mp3 via its usb, it opens iphoto. How do I stop this and get it back as a dev
-
Please god . deactivate this product. Your troubleshooters dont work, cannot deactivate. I am using RETAIL, adobe acrobat xi.Connected to internet. On for over 20 min. Open to deactivate greyed out. Windows 7 x64 pro. This crap makes people want to u
-
Problems with Apache Plugin and IE
Hi, we are currently migrating from NES 3.6 to Apache 1.3.27. Since we use Apache 1.3.27 we encountered frequent crashes (Dr. Watsons) in IE 5.0. We can avoid this using an updated jsproxy.dll (of IE5.5 SP2 or later). However we cannot force our cust
-
Error when testing SAP GUI for HTML
Hi experts, i am getting the error "Service cannot be reached - the termination occured in system <sysid> with error code 403 and for the reason forbidden" when I test the service SAP GUI for HTML for transaction sicf. I am able to enter mit username