I want a smiple sql query to create a calender
Hi,
I can not find my sql query to create a calender.
It is just the one who already shows when you create a calender.
I am writing documentation and I have no acces to Oracle Portal anymore.
Can somebody give me that sql query ?
Thanks a lot,
Chu Lam
Hi,
This the one.
select
EMP.HIREDATE the_date,
EMP.ENAME the_name,
null the_name_link,
null the_date_link,
null the_target
from SCOTT.EMP
order by EMP.HIREDATE
Thanks,
Sharmila
Similar Messages
-
SQL QUERY to create new schema in Oracle 10g Express
Can anyone provide the SQL query to create a new schema in Oracle 10g Express edition.
Can anyone provide a SQl query to create a
schema/user named 'test' with username as 'system'
and password as 'manager'system user is created during database creation, it's internal Oracle admin user that shouldn't be used as schema holder.
In Oracle database, Oracle user is schema holder there's no seperate schema name to be defined other than username. -
Use the results of an SQL query to create another query
I am working on a bidding/allocation system using C# and MySQL, and I am currently having difficulty implementing the “post-allocation” mechanics of the system. Let me explain how it works, before introducing the code:
When the bids are made on the system, they all have the position 0, so the first thing the system does is order them according to priority.
(bid table)
In this case, 5 bidders are interested in what is in plot 15, but we have not assigned them a position yet.
(bid table)
The system then organises the bids according to the order in which they are going to processed.
The bids are then allocated, but unfortunately there are only 3 spaces in plot 15 that can be allocated. As a result, we use the priority listing to determine which bidder gets what.
(booking table)
At this stage, I can say that I am stuck, there are two things that I want to do, both of which involve reusing the results of the query at step 2.
(bid table)
The bidders that have their job allocated should see: their bid.status updated
from Queued to Allocated,
the bid.position should
be set to 0,
and their job_id should
be set to the booking they have been allocated (i.e. booking.id).
The bidders that have not had their jobs allocated should see: their bid.status remain
as Queued, and their bid.position should
be set to 0 in
preparation for the method to run again
The difficulty I am having is in stage 3, how do I determine which jobs have been allocated and which ones have not, and then run the necessary SQL queries in order to make the updates?
My code so far is as follows:
// STEP 1a - SELECT BIDS
string query =
"SELECT t1.operator_id, t1.datetime, t1.plot_id, t1.position, t2.market_access FROM bid t1 " +
"JOIN operator t2 ON t1.operator_id = t2.id WHERE t1.status='Queued' AND t1.postcode=@postcode " +
"ORDER BY t2.market_access ASC, t1.datetime ASC";
var bidList = new List<BidList>();
var cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
MySqlDataReader dataReader = cmd.ExecuteReader();
while (dataReader.Read())
var item = new BidList
OperatorId = dataReader["operator_id"] + "",
PlotId = dataReader["plot_id"] + "",
Position = dataReader["position"] + "",
Datetime = dataReader["datetime"] + "",
MarketAccess = dataReader["market_access"] + "",
bidList.Add(item);
dataReader.Close();
// STEP 1b - SET PRIORITIES
for (var i = 0; i < bidList.Count; i++)
var position = i + 1;
bidList[i].Position = position.ToString();
query = "UPDATE bid SET position=@position WHERE status='Queued' AND postcode=@postcode AND operator_id=@operator_id;";
cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@position"), position);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
cmd.Parameters.AddWithValue(("@operator_id"), bidList[i].OperatorId);
cmd.ExecuteNonQuery();
dataReader.Close();
// STEP 2 - ALLOCATE JOBS ACCORDING TO PRIORITY
foreach (var t in bidList)
query = "SELECT operator_id, plot_id, status FROM booking " +
"WHERE status='open' AND postcode=@postcode AND operator_id='0'" +
"ORDER BY datetime ASC;" +
"UPDATE booking SET operator_id=@operator_id, status='Allocated' " +
"WHERE (plot_id=@plot_id AND operator_id='0' AND status='Open') LIMIT 1;";
cmd = new MySqlCommand(query, _connection);
cmd.Parameters.AddWithValue(("@operator_id"), t.OperatorId);
cmd.Parameters.AddWithValue(("@postcode"), _plot);
cmd.Parameters.AddWithValue(("@plot_id"), t.PlotId);
cmd.ExecuteNonQuery();
dataReader.Close();
// STEP 3
CloseConnection();I can't tell. When modifying row(s) you have to be able to uniquely be able to identify the row(s) in the database you want to modify. That is why I recommended the other day to use DataAdapter instead of the DataReader. You can with the
reader, but you need to unique identify the rows.
I can't tell from the limited amount of data you posted if in table 2 that there is only one row with the same operator id and plot id. It looks like in table 2 the 'id' number is unique. When working with a database with multiple tables you
need to be able to link tables together with primary keys (columns wit unique values). If the database isn't designed properly then it is impossible to do some operations. So you always have to make sure you design a database properly.
jdweng
When you say table 2 are you referring to the bid or booking table?
Here is the table structure for the bid table
Here is the table structure for the booking table
Hope it helps makes things clearer! -
SQL Query to create a Time Dimension at 15 mins granuality
I need a query to generate Time Hierarchy for Year, Half Year, Qtr, Month, Week, Days, Hours, 15 minutes interval
Pls share the query to generate the same or Excel sheet with the data.
Thanks
AnkyCan you clarify your request a bit?
Check the following blog for datetime sequence generation:
http://www.sqlusa.com/bestpractices2005/sequence/
Recursive CTE is used to generate the sequence.
Hierarchical DimDate in AdventureWorksDW2012:
CREATE TABLE [dbo].[DimDate](
[DateKey] [int] NOT NULL,
[FullDateAlternateKey] [date] NOT NULL,
[DayNumberOfWeek] [tinyint] NOT NULL,
[EnglishDayNameOfWeek] [nvarchar](10) NOT NULL,
[SpanishDayNameOfWeek] [nvarchar](10) NOT NULL,
[FrenchDayNameOfWeek] [nvarchar](10) NOT NULL,
[DayNumberOfMonth] [tinyint] NOT NULL,
[DayNumberOfYear] [smallint] NOT NULL,
[WeekNumberOfYear] [tinyint] NOT NULL,
[EnglishMonthName] [nvarchar](10) NOT NULL,
[SpanishMonthName] [nvarchar](10) NOT NULL,
[FrenchMonthName] [nvarchar](10) NOT NULL,
[MonthNumberOfYear] [tinyint] NOT NULL,
[CalendarQuarter] [tinyint] NOT NULL,
[CalendarYear] [smallint] NOT NULL,
[CalendarSemester] [tinyint] NOT NULL,
[FiscalQuarter] [tinyint] NOT NULL,
[FiscalYear] [smallint] NOT NULL,
[FiscalSemester] [tinyint] NOT NULL)
Kalman Toth Database & OLAP Architect
Free T-SQL Scripts
New Book / Kindle: Exam 70-461 Bootcamp: Querying Microsoft SQL Server 2012 -
I am trying to extract a report for some pois, unfortunately I don't know how to formulate the query properly. Some data samples together with the rules for the report are described below:
with my_tab as (select 1 id, 'ACME' supplier, 1 poi, 'A' attr1, 'B' attr2 from dual union all
select 2 id, 'TOMA' supplier, 2 poi, 'C' attr1, 'D' attr2 from dual union all
select 3 id, 'ACME' supplier, 3 poi, 'A' attr1, 'B' attr2 from dual union all
select 4 id, 'TOMA' supplier, 3 poi, 'C' attr1, 'D' attr2 from dual union all
select 5 id, 'ACME' supplier, 4 poi, null attr1, null attr2 from dual union all
select 6 id, 'TOMA' supplier, 4 poi, 'C' attr1, 'D' attr2 from dual union all
select 7 id, 'ACME' supplier, 5 poi, null attr1, 'B' attr2 from dual union all
select 8 id, 'TOMA' supplier, 5 poi, 'C' attr1, 'D' attr2 from dual union all
select 9 id, 'ACME' supplier, 6 poi, null attr1, null attr2 from dual union all
select 10 id, 'TOMA' supplier, 6 poi, null attr1, 'D' attr2 from dual)
rules for the resultset:
a) each distinct poi has to occur exactly once
b) if there is more than one record having the same poi id, the attributes from supplier ACME are preferred
c) if ACME is not able to provide an attribute, the supplier TOMA has to step in
The result should look like this:
poi | attr1 | att2
1 | A | B |
2 | C | D |
3 | A | B |
4 | C | D |
5 | C | B |
6 | null | D |
Edited by: user8914294 on Dec 21, 2009 11:58 AM
Edited by: user8914294 on Dec 21, 2009 11:59 AMHi,
Welcome to the forum!
Here's one way:
SELECT poi
, MAX (attr1) KEEP (DENSE_RANK FIRST ORDER BY CASE
WHEN attr1 IS NOT NULL THEN 1
END
, CASE supplier
WHEN 'ACME' THEN 1
WHEN 'TOMA' THEN 2
END
) AS attr_1
, MAX (attr2) KEEP (DENSE_RANK FIRST ORDER BY CASE
WHEN attr2 IS NOT NULL THEN 1
END
, CASE supplier
WHEN 'ACME' THEN 1
WHEN 'TOMA' THEN 2
END
) AS attr_2
FROM my_tab
GROUP BY poi
ORDER BY poi
;This does not rely on the fact that there are only two suppliers, or that the combination (poi, supplier) is unique, or that the order of preference for suppliers is the same as alphabetic order.
This is an example of a Top-N Query , where you want N items (N=1 in this case) from the top of a sorted list. The problem is, how can we sort the values so that the more desirable ones come at the top of the list?
There are two things that make one value more desirable than another:
(1) Non-NULL values are better than NULL. After that:
(2) Rows where supplier='ACME' are more desireable than rows where supplier='TOMA'.
As it happens, both of these require CASE expressions (or siomething similar, like NVL2) to sort.
Thanks for posting the sample data in such a useful format! That helps a lot. -
Bold a single row in a Report based on SQL Query
Should be easy? So, how do I bold a single row in a report based on SQL query without creating a new template or writing Java for the page? What is the Tabular Form Element "Element Attributes" field for? Or what am I supposed to put in there to make it do anything?
One way to do this is to add a hidden column to your report which contains the formatting value, for example:
select empno
, ename
, sal
, decode(empno,1,'font-weight:bold','font-weight:normal') style
from emp
Hide the STYLE column.
Then you can use this column for each column in Column Formatting > HTML expression in this way:
<span style="#STYLE#">#SAL#</span>
Unfortunately you have to do this for each colum you want to appear bold.
good luck,
Dirk Dral -
How Can I Execute Sql Query in Managed bean?
Hi,
I want to execute sql query in managedbean and get the query result. How can I do?
Best wishes!You can do this by having current Database connection your application is using like this
public static synchronized DBTransaction getDBTransaction(){
FacesContext ctx = FacesContext.getCurrentInstance();
ValueBinding vb = ctx.getApplication().createValueBinding("#{data}");
BindingContext bc = (BindingContext)vb.getValue(ctx.getCurrentInstance());
DataControl dc = bc.findDataControl("AppModuleDataControl");
ApplicationModuleImpl am = ((ApplicationModuleImpl)(ApplicationModule)dc.getDataProvider());
return am.getDBTransaction();
and then user DBTransaction object to create Statement and PreparedStatement you can find those in java doc. -
SQL Query (Oracle 10g)
Hi All,
Please find the following requirement.
Requirement -
There are 2 standalone database named database A and
database B used by 2 separate application. Database A
has schema S1 and Database B has schema S2.
Schema S1 has around 40 master tables which get updated
very frequently. This 40 tables are also present in S2
also.
We want the both the 40 tables to be in sync every
hourly or half any hour.
eg. If records are added/updated deleted in S1.emp then
same should be done in S2.emp and visa versa also.
We dont want to use dblink,materialised views or
scripts. Is there any feature in Oracle 10G like
replication or Streams where in this can be done.
Incase if are not able to replicate both ways then at
least one way can we replicate ? like any records are
added/updated deleted in S1.emp then same should be done
in S2.emp and similarly in the other 39 tables.
Thank you
Message was edited by:
User71408Can anyone provide a SQl query to create a
schema/user named 'test' with username as 'system'
and password as 'manager'system user is created during database creation, it's internal Oracle admin user that shouldn't be used as schema holder.
In Oracle database, Oracle user is schema holder there's no seperate schema name to be defined other than username. -
Executing a column which has a sql query in a tabular form
Hi,
I have a tabular form which contains a column named as SQL which has sql statements in it. Without going to the SQL workshop in Apex i want to execute that query in the tabular form itself. For that i've created a page item which fetches the particular rows sql query and created a button 'EXECUTE'. When i click the execute button it should run the query and should display whether the query is correct or not and should show the error message.
Can any one provide solution for this or whether there are any other ways to achive this scenario.
With Regards
Balaji.P.KBalaji P.K wrote:
Can any one provide solution for this or whether there are any other ways to achive this scenario.Difficult as we have no idea what this "scenario" actually is. Go back several steps and explain in detail the problem this is supposed to solve.
I have a tabular form which contains a column named as SQLBad idea. <tt>SQL</tt> is a PL/SQL reserved word. Using any token from Oracle namespaces as a database identifier is confusing/problematic.
which has sql statements in it.Why? Where does this SQL come from? What is the source of the tabular form?
Without going to the SQL workshop in Apex i want to execute that query in the tabular form itself.Explain the "execute that query in the tabular form itself" concept. Where do the results go? -
I want to execute SQL query in the JavaBean.
Is there any problem in the following code.
There is no error message, but the database do not update. And I try to use JSP , it is ok. What is the problem in JavaBean ??
How to execute SQL in JavaBean ???
Please help ! Thank you !
test.jsp - call UserTrace.java
UserTrace.java - execute SQL
Code:
** test.jsp **
<%@ page language="java" contentType="text/html" %>
<%@ page import="user.*, java.util.*" %>
<jsp:useBean id="usertrace" class="user.UserTrace" scope="session" />
<%
if (session.isNew())
session.setAttribute("usertrace", usertrace);
session.setMaxInactiveInterval(15);
%>
** UserTrace.java **
package user;
import java.util.*;
import javax.servlet.http.*;
import java.io.*;
import java.beans.*;
import java.sql.*;
import user.*;
public class UserTrace implements javax.servlet.http.HttpSessionBindingListener {
private Connection con = null;
Statement stmt = null;
ResultSet rs = null;
String sql;
public void valueBound(HttpSessionBindingEvent event) {
public void valueUnbound(HttpSessionBindingEvent event) {
try {
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/test?user=abc&password=abcd");
stmt = con.createStatement();
sql = "insert into list(username, session_id) values ('mary', 'xxxxxxxxx')";
int count = stmt.executeUpdate(sql);
catch (ClassNotFoundException e) {
catch (SQLException e) {
}Hi,
U can use the following code:
/********** IMPORTING PACKAGES AND CLASSES *******/
// General package id
package id;
//Import the Vector class as this bean handles Vector.
import java.util.Vector;
//Import the SQL class to create the connections,statement,resultset etc.,
import java.sql.*;
//Import the SQL Types to call the setNull Method.
import java.sql.Types.*;
/* Main Class */
public class dataBean
/*********** Global Declarations ********/
// To create the connection object
Connection con;
// To create the Statement object
Statement stmt;
// To create the PreparedStatement object
PreparedStatement psmt;
// To Handle the ResultSet
ResultSet rs;
// Most of the method need to hold the querystring for which qryString variable declare globally.
String qryString=null;
/************ METHODS **************/
/* To set the connection object
con - Connection object
public void setConnection(Connection con)
try
this.con = con;
catch(Exception e)
/* insertRecord with column type argument
tblNameString - Name of the Table
dataVector - vector contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecord(String tblNameString,Vector dataVector,String colType[])
boolean sucFlag=false;
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
qryString = "insert into "+tblNameString+" values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for(int i=0;i<colType.length;i++)
if (colType.equals("I"))
psmt.setInt(i+1,Integer.parseInt(dataVector.elementAt(i).toString()));
else if (colType[i].equals("F"))
psmt.setFloat(i+1,Float.parseFloat(dataVector.elementAt(i).toString()));
else if (colType[i].equals("S") || colType[i].equals("D"))
psmt.setString(i+1,dataVector.elementAt(i).toString());
else if (colType[i].equals("IN")||colType[i].equals("FN"))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else if (colType[i].equals("SN"))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else if (colType[i].equals("DN"))
psmt.setNull(i+1,java.sql.Types.DATE);
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* insertRecord without column type argument
tblNameString - Name of the Table
dataVector - vector contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecord(String tblNameString,Vector dataVector)
boolean sucFlag=false;
Vector colType = getColumnType(tblNameString);
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
qryString = "insert into "+tblNameString+" values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for(int i=0;i<colType.size();i++)
if (colType.elementAt(i).toString().equals("I"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setLong(i+1,Long.parseLong(dataVector.elementAt(i).toString()));
else if (colType.elementAt(i).toString().equals("F"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(i+1,Double.parseDouble(dataVector.elementAt(i).toString()));
else if (colType.elementAt(i).toString().equals("S"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else
psmt.setString(i+1,dataVector.elementAt(i).toString());
else if (colType.elementAt(i).toString().equals("D"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.DATE);
else
psmt.setString(i+1,dataVector.elementAt(i).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* insert particular fields
tblNameString - Name of the Table
dataVector - vector which contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record inserted successfully
fase - if insertion fails
public boolean insertRecordPart(String tblNameString,Vector dataVector,String colType[])
boolean sucFlag=false;
String fieldString=" ";
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<(fieldCount/2)-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
String valueString[]= new String[fieldCount];
for (int i=0,j=0;i<fieldCount;i+=2,j++)
fieldString=fieldString+dataVector.elementAt(i)+",";
valueString[j]=dataVector.elementAt(i+1).toString();
if (fieldString.substring(fieldString.length()-1,fieldString.length()).equals(","))
fieldString=fieldString.substring(0,fieldString.length()-1);
qryString = "insert into "+tblNameString+"("+fieldString+") values ("+commaString+")";
psmt = con.prepareStatement(qryString);
for (int i=1,j=0;i<fieldCount;i+=2,j++)
if (colType[j].equals("I"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setInt(j+1,Integer.parseInt(dataVector.elementAt(i).toString()));
else if (colType[j].equals("L"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setLong(j+1,Long.parseLong(dataVector.elementAt(i).toString()));
else if (colType[j].equals("F"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setFloat(j+1,Float.parseFloat(dataVector.elementAt(i).toString()));
else if (colType[j].equals("DB"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(j+1,Double.parseDouble(dataVector.elementAt(i).toString()));
else if (colType[j].equals("S"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.VARCHAR);
else
psmt.setString(j+1,dataVector.elementAt(i).toString());
else if (colType[j].equals("D"))
if (dataVector.elementAt(i)==null||dataVector.elementAt(i).toString().equals(""))
psmt.setNull(j+1,java.sql.Types.DATE);
else
psmt.setString(j+1,dataVector.elementAt(i).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
catch(Exception e)
return sucFlag;
/* Get Column Type of require table fields
tblNameString - Name of the table
return vector which contains the column types of the desired table
public Vector getColumnType(String tblNameString)
int colCount = 0;
String locString="";
Vector colVector = new Vector();
try
qryString = "select DATA_TYPE from user_tab_columns where table_name=? ORDER BY COLUMN_ID";
psmt = con.prepareStatement(qryString);
psmt.setString(1,tblNameString.toUpperCase());
rs = psmt.executeQuery();
while (rs.next())
colCount = rs.getMetaData().getColumnCount();
for(int i=1;i<=colCount;i++)
locString = rs.getString(i);
colVector.addElement(locString.equals("DATE")?"D":locString.equals("NUMBER")?"F":locString.equals("VARCHAR2")?"S":locString.equals("VARCHAR")?"S":"");
rs.close();
catch(Exception e)
return colVector;
/* update record
tblNameString - Name of the Table
dataVector - vector which contains the values according to the table order
eg., element(0) has first field, element(1) has second field vice versa
colType - String array contains type of all the fields.
return true - if record successfully updated
false - if Update fails
public boolean updateRecord(String tblNameString,Vector dataVector,String colType[],String whereString)
boolean sucFlag=false;
String fieldString=" ";
try
String commaString = "";
int fieldCount = dataVector.size();
for (int i=0;i<fieldCount-1;i++)
commaString +="?,";
commaString+="?";
if (fieldCount > 0)
String valueString[]= new String[fieldCount];
for (int i=0,j=0;i<fieldCount;i+=2,j++)
fieldString=fieldString+dataVector.elementAt(i)+"=?,";
valueString[j]=dataVector.elementAt(i+1).toString();
if (fieldString.substring(fieldString.length()-1,fieldString.length()).equals(","))
fieldString=fieldString.substring(0,fieldString.length()-1);
qryString = "update "+tblNameString+" set "+fieldString+" "+whereString;
psmt = con.prepareStatement(qryString);
for(int i=0,vectorPos=1;i<colType.length;i++,vectorPos+=2)
if (colType[i].equals("I"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setInt(i+1,Integer.parseInt(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("L"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setLong(i+1,Long.parseLong(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("F"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setFloat(i+1,Float.parseFloat(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("DB"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.NUMERIC);
else
psmt.setDouble(i+1,Double.parseDouble(dataVector.elementAt(vectorPos).toString()));
else if (colType[i].equals("S"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.VARCHAR);
else
psmt.setString(i+1,dataVector.elementAt(vectorPos).toString());
else if (colType[i].equals("D"))
if (dataVector.elementAt(vectorPos)==null||dataVector.elementAt(vectorPos).toString().equals(""))
psmt.setNull(i+1,java.sql.Types.DATE);
else
psmt.setString(i+1,dataVector.elementAt(vectorPos).toString());
int sucCnt = psmt.executeUpdate();
if (sucCnt > 0) sucFlag=true;
} // end of if
} // end of try
catch(Exception e)
return false;
return sucFlag;
public ResultSet getResultSet(String selectString)
try
stmt = con.createStatement();
rs = stmt.executeQuery(selectString);
catch(Exception e)
System.out.println(e.getMessage());
finally
return rs;
/* Get Query Result
selectString - Query
return the result vector based on the querystring
public Vector getResultVector(String selectString)
Vector resVector = new Vector();
try
stmt = con.createStatement();
rs = stmt.executeQuery(selectString);
while (rs.next())
resVector.addElement(rs.getString(1));
resVector.addElement(rs.getString(2));
catch(Exception e)
System.out.println(e.getMessage());
finally
return resVector;
/* return next consecutive number
tablenName - Name of the table for which the number to be generated
serialFiel - Name of the field for which the number to be generated
whereString - where condition to filter the records if composite key found,
it can be empty if there is no composite primary key.
startNumber - if there is no record exists in the table, set the starting number
public String getCurrentSerial(String tableName,String serialField,String whereString,String startNumber)
String queryString = "select max(to_number("+serialField+")) from "+tableName+" "+whereString;
int maxSerial=0;
try
psmt = con.prepareStatement(queryString);
rs = psmt.executeQuery();
while (rs.next())
maxSerial = rs.getInt(1);
if (maxSerial < 0)
maxSerial=Integer.parseInt(startNumber);
else
maxSerial+=1;
rs.close();
catch(Exception e)
return String.valueOf(maxSerial);
/* return next consecutive number
tablenName - Name of the table for which the number to be generated
serialFiel - Name of the field for which the number to be generated
whereString - where condition to filter the records if composite key found,
it can be empty if there is no composite primary key.
Note : if there is no record exists in the table, it starts with 1
public String getCurrentSerial(String tableName,String serialField,String whereString)
String queryString = "select max(to_number("+serialField+")) from "+tableName+" "+whereString;
int maxSerial=0;
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
maxSerial = rs.getInt(1);
if (maxSerial < 0)
maxSerial=1;
else
maxSerial+=1;
rs.close();
catch(Exception e)
System.out.println("Error from max serialX:"+e.getMessage());
return String.valueOf(maxSerial);
/* return the currnent user name */
public String getCurrentUser()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select user from dual";
String userName = "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
userName = rs.getString(1);
rs.close();
catch(Exception e)
return userName;
/* return current user along with server's current date
example : userName#today
public String getCurrentUserDate()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select user,to_char(sysdate,'dd-mon-yyyy') from dual";
String userName = "";
String todayDate= "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
userName = rs.getString(1);
todayDate = rs.getString(2);
rs.close();
catch(Exception e)
return userName+"#"+todayDate;
/* return server's current date */
public String getCurrentDate()
Statement stmt=null;
ResultSet rs=null;
String queryString = "select to_char(sysdate,'dd-mon-yyyy') from dual";
String todayDate= "";
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
todayDate = rs.getString(1);
rs.close();
catch(Exception e)
return todayDate;
/* return true if atleast one record found in the table
tblName : Name of the table
whereString : Where condition to filter the records
public boolean isRecordExists(String tblName,String whereString)
String queryString = "select count(1) from "+tblName+" "+whereString;
boolean recFound = false;
try
stmt = con.createStatement();
rs = stmt.executeQuery(queryString);
while (rs.next())
if (rs.getInt(1)==0)
recFound = false;
else
recFound = true;
rs.close();
catch(Exception e)
return recFound;
// round off decimal Places
public String fixDecimal(String sourceString,int digits)
String tmpText="",decimalPart="",returnText="";
try
sourceString = String.valueOf(Double.parseDouble(sourceString));
tmpText = sourceString.substring(sourceString.indexOf(".")+1);
if (tmpText.length() > digits)
decimalPart = tmpText.substring(0,digits);
if (Integer.parseInt(tmpText.substring(digits,digits+1))>=5)
decimalPart = String.valueOf(Integer.parseInt(decimalPart)+1);
tmpText = decimalPart;
if (decimalPart.length() > 3) // to check wheter 1000 reached, if yes add 1 to actual text
returnText = String.valueOf(Integer.parseInt(sourceString.substring(0,sourceString.indexOf(".")))+1);
else
returnText = sourceString.substring(0,sourceString.indexOf("."))+"."+tmpText;
else // if user entered decimal is with in 3 digits
if (tmpText.equals("0"))
returnText = sourceString.substring(0,sourceString.indexOf("."));
else
returnText = sourceString.substring(0,sourceString.indexOf("."))+"."+tmpText;
catch(Exception e)
System.out.println(e.getMessage());
return sourceString;
System.out.println(returnText);
return returnText;
} // end of main class
Access this Bean in JSP as follows:
<%@ page language="java" %>
<%@ page import="java.util.*"%>
<%@ include file="../connectionSetup.jsp"%>
<jsp:useBean id="dataBeanObj" class="id.dataBean"/>
<html>
<head>
<title>ADDRESS MASTER FORM</title>
<style type="text/css">
.tData
font-family : sans-serif;
font-size : 9px;
font-weight : bolder;
color : navy;
.buttonStyle
font-family : sans-serif;
font-size :10px;
</style>
</head>
<%
dataBeanObj.setConnection(con);
String curCode="";
String consFld = request.getParameter("consfld")==null?"":request.getParameter("consfld");
String cat = request.getParameter("cat")==null?"a":request.getParameter("cat").equals("a")?"a":"u";
boolean updateFlag=false,isWrongCountry=false;
String code="";
String name="";
String add1="";
String add2="";
String add3="";
String state="";
String country="";
String zip="";
String am_pcouncode="";
String am_pareacode="";
String am_psubcode="";
String am_fcouncode="";
String am_fareacode="";
String am_fsubcode="";
String am_phone="";
String am_fax="";
String email="";
String notes="";
String telex="";
String mobile="";
String popup="";
code = request.getParameter("code")==null?"":request.getParameter("code");
name = request.getParameter("name")==null?"":request.getParameter("name");
popup = request.getParameter("popup")==null?"":request.getParameter("popup");
String submitMode = request.getParameter("submit_mode")==null?"":request.getParameter("submit_mode");
String editMode = request.getParameter("edit_hidden")==null?"null":request.getParameter("edit_hidden");
if (name != null && !submitMode.equals("yes")) // ready to retrieve records
if (!code.equals(""))
rs = dataBeanObj.getResultSet("select am_code code,am_name name,am_address_1 add1,am_address_2 add2,am_address_3 add3,am_country country,am_state state,am_zip zip,am_phone phone,am_fax fax,am_e_mail email,am_notes notes,am_telex telex,am_mobile mobile from id_vms_address_master where am_code='"+code+"'");
else
rs = dataBeanObj.getResultSet("select am_code code,am_name name,am_address_1 add1,am_address_2 add2,am_address_3 add3,am_country country,am_state state,am_zip zip,am_phone phone,am_fax fax,am_e_mail email,am_notes notes,am_telex telex,am_mobile mobile from id_vms_address_master where upper(am_name)='"+name.toUpperCase()+"'");
if (rs.next()) // if record found
code = rs.getString("code"); // retrieve code
name = rs.getString("name"); // retrieve name
add1 = rs.getString("add1"); // retrieve address 1
add2 = rs.getString("add2"); // retrieve address 2
add3 = rs.getString("add3"); // retrieve address 3
country = rs.getString("country"); // retrieve country
state = rs.getString("state"); // retrieve state
zip = rs.getString("zip"); // retrieve zip
am_phone = rs.getString("phone"); // retrieve phone
am_fax = rs.getString("fax"); // retrieve fax
email = rs.getString("email"); // retrieve email
notes = rs.getString("notes"); // retrieve notes
telex = rs.getString("telex"); // retrieve telex number
mobile = rs.getString("mobile"); // retrieve mobile number
else if (submitMode.equals("yes")) // ready to submit
code = request.getParameter("code"); // get the input code
name = request.getParameter("name"); // get the input name
add1 = request.getParameter("address1"); // get the input address 1
add2 = request.getParameter("address2"); // get the input address 2
add3 = request.getParameter("address3"); // get the input address 3
country = request.getParameter("country"); // get the input country
state = request.getParameter("state"); // get the input state
zip = request.getParameter("zip"); // get the input zip
am_pcouncode = request.getParameter("pcouncode"); // get the input phone country code
am_pareacode = request.getParameter("pareacode"); // get the input phone area code
am_psubcode = request.getParameter("psubscode"); // get the input phone subscriber code
am_fcouncode = request.getParameter("fcouncode"); // get the input fax country code
am_fareacode = request.getParameter("fareacode"); // get the input fax area code
am_fsubcode = request.getParameter("fsubscode"); // get the input fax subscriber code
am_phone = am_pcouncode+"-"+am_pareacode+"-"+am_psubcode;
am_fax = am_fcouncode+"-"+am_fareacode+"-"+am_fsubcode;
telex = request.getParameter("telex"); // get the input telex
mobile = request.getParameter("mobile"); // get the input mobile
email = request.getParameter("email"); // get the input email
notes = request.getParameter("notes"); // get the input notes
String colType[] = {"S","S","S","S","S","S","S","S","S","S","S","S","S","S"};
Vector vec = new Vector();
if (cat.equals("u"))
vec.addElement("am_code"); vec.addElement(code); // add code to vector element
else
curCode = dataBeanObj.getCurrentSerial("id_vms_address_master","am_code","");
vec.addElement("am_code"); vec.addElement(curCode); // Next Serial Generation
vec.addElement("am_name"); vec.addElement(name); // add name to vector element
vec.addElement("am_address_1"); vec.addElement(add1); // add address 1 to vector element
vec.addElement("am_address_2"); vec.addElement(add2); // add address 2 to vector element
vec.addElement("am_address_3"); vec.addElement(add3); // add address 3 to vector element
vec.addElement("am_country"); vec.addElement(country); // add country to vector element
vec.addElement("am_state"); vec.addElement(state); // add state to vector element
vec.addElement("am_zip"); vec.addElement(zip); // add zip to vector element
vec.addElement("am_phone"); vec.addElement(am_phone); // add phone to vector element
vec.addElement("am_fax"); vec.addElement(am_fax); // add fax to vector element
vec.addElement("am_e_mail"); vec.addElement(email); // add email to vector element
vec.addElement("am_notes"); vec.addElement(notes); // add notes to vector element
vec.addElement("am_telex"); vec.addElement(telex); // add telex to vector element
vec.addElement("am_mobile"); vec.addElement(mobile); // add mobile to vector element
if (dataBeanObj.isRecordExists("id_country_master"," where country_code='"+country+"'"))
if (cat.equals("u"))
// update the records
updateFlag = dataBeanObj.updateRecord("id_vms_address_master",vec,colType,"where am_code='"+code+"'");
else
// insert record
updateFlag = dataBeanObj.insertRecordPart("id_vms_address_master",vec,colType);
else
isWrongCountry=true;
%>
The connectionSetup.jsp is as follows:
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="allaire.taglib.*" %>
<%
Connection con=null;
PreparedStatement ps = null;
Statement stmt=null;
ResultSet rs=null;
try
String jrunDSN = null, lookupDSN = null;
jrunDSN = request.getParameter("dsnvalue") == null ? "vms_test" : request.getParameter("dsnvalue");
lookupDSN = "java:comp/env/jdbc/" + jrunDSN;
InitialContext ctx = new InitialContext();
DataSource dsn = (DataSource)ctx.lookup(lookupDSN);
try
if (application.getAttribute("connectionapplication") == null)
con = dsn.getConnection();
application.setAttribute("connectionapplication",con);
else
con = (Connection) application.getAttribute("connectionapplication");
stmt = con.createStatement();
catch(Exception e)
con = dsn.getConnection();
application.setAttribute("connectionapplication",con);
catch(Exception e)
out.println("<font face='arial' size='2'><center>Problem with database connection. Please contact your administrator</center></font>");
%>
In Connection setup.jsp u can change as u need.
This is thru JNDI. This works fine for us in our projects.
Bye. -
Hello all,
I have a table that contains more than 100 000 records, structure seen below. I am trying to perform simple queries on this table and it is taking FOREVER for the query to return (in excess of 10 minutes). The only field that contains unique data is the 'key', which I have made the primary key.
Table: WORK
Name Null? Type
ASSIGNMENT_NO NOT NULL NUMBER(2)
START_DATE NOT NULL DATE
END_DATE DATE
ID_NO NOT NULL NUMBER(9)
CODE NOT NULL VARCHAR2(4)
REF_KEY NOT NULL NUMBER(9)
STATUS NOT NULL VARCHAR2(1)
ID_NAME NOT NULL VARCHAR2(30)
LAST_MODIFIED_DATE NOT NULL DATE
KEY NOT NULL NUMBER(9)
As I need to pass into the query varying data I Use a PL/SQL function to call the SQL query.
CREATE OR REPLACE FUNCTION THE_SAMPLE (THE_REF_KEY, THE_ID_NO, PUT_A_DATE_HERE)
RETURN VARCHAR2 IS
CURSOR C IS
SELECT w1.code
FROM work w1
WHERE w1.ref_key = THE_REF_KEY
AND w1.ID_NO = THE_ID_NO
AND w1.status <> 'I'
AND w1.start_date <= PUT_A_DATE_HERE
AND (w1.end_date IS NULL or w1.end_date >= PUT_A_DATE_HERE)
AND w1.start_date = (SELECT MAX(W2.start_date)
FROM work w2
WHERE w2.REF_KEY = W1.REF_KEY
AND w2.ID_NO = W1.ID_NO
AND w2.status <> 'I'
AND w2.start_date <= PUT_A_DATE_HERE
AND (w2.end_date IS NULL or w2.end_date >= PUT_A_DATE_HERE));
out_rec c%ROWTYPE;
begin
begin
open C;
fetch c into out_rec;
CLOSE C;
EXCEPTION
WHEN no_data_found THEN
out_rec.code := NULL;
END;
return out_rec.code;
end THE_SAMPLE;
I am looking for a quick way to accomplish the same task. The main reason is that I am feeding this SQL statement about 20 000 different ref_keys each with a particular ID_NO. Since it seems to take a long time just to process one element I did want crunch data for the next month.
Any help, idea, comments would be greatly welcomed.
Any ideas on how to stream line this?Hummm... I am still working on it, but this is what I have come up with so far:
One way is to do this use this
CURSOR C IS
SELECT w1.code
FROM work w1, (SELECT MAX(w2.start_date) as MAX_DATE
FROM work w2
WHERE w2.ref_key = THE_REF_KEY
AND w2.ID_NO = THE_ID_NO
and w2.status <> 'I'
AND w2.start_date <= PUT_A_DATE_HERE
AND (w2.end_date IS NULL or w2.end_date >= PUT_A_DATE_HERE)) GET_MAX
WHERE w1.ref_key = THE_REF_KEY
AND w1.ID_NO = THE_ID_NO
and w1.status <> 'I'
AND w1.start_date <= PUT_A_DATE_HERE
AND (w1.end_date IS NULL or w1.end_date >= PUT_A_DATE_HERE)
AND w1.start_date = GET_MAX.MAX_DATE;
This way does seem to work a bit faster. I will have to see as the hours pass by.
I am still looking for ways that will process this faster.
null -
Export to Excel from Report region (pl/sql returning sql query)
Hello all,
I have encountered an interesting problem. I have an HTMLDB application with a lot of sql reports coded straight inside the report region. In order to better organize my reports, I decided to
1. make all my report regions of type "Pl/Sql function returning SQL query"
2. create a package inside my database schema which houses all reports as pl/sql functions returning VARCHAR2, the string returned being the report query
3. just calling "return package_name.function_name" from inside my report region of type "Pl/sql function returning SQL query".
This technique seemed to work perfectly. The reports were being returned as expected. I was then asked to provide the "Export to Excel" capability to all my reports. This seemed like a piece of cake using HTML DB's "Export to Excel" extension. However, the "export to excel" does not function correctly when my reports are inside a package in the database. HTML DB tries to export but inside the excel spreadsheet, instead of seeing row data, I see:
<pre>failed to parse SQL query:
ORA-00936: missing expression
<!-- select a.username, b.table_name, 'View Row Data' from schema_browser_user_list a, all_tables b where a.user_id = and a.username = b.owner order by b.table_name asc
--!>
</pre>
I am building my query string inside of my package functions by using a combination of literal strings and concatenating them with some parameter values being passed in. It seems that the HTML DB engine which exports the report to excel does not properly understand the concatenation of variables as can be seen by the empty space to the right of the equal sign in the "a.user_id = " clause. Does anybody have any input as to whether this is a known issue or if I am doing something wrong? Thanks a lot for your time.
- Kenny R.James,
Thanks for the quick reply. I think you mis-understood what I'm doing. All I'm doing is creating packaged functions which return VARCHAR2. The VARCHAR2 that they return is the report query. With this technique, I no longer have to type the query into the HTML DB report region. Instead, I make the report region a "Pl/sql function returning sql query" and make the following call: return package_name.function_name(some_application_items passed in as parameters)
This makes for a much more organized html db app. The problem is that the "export to excel" function does not correctly interpret the VARCHAR2 that my packaged functions are returning. Is this a better explanation? Thanks again for your time.
- Kenny R. -
Error in report when executing pl/sql function body returning sql query.
Hi,
I have used the pl/sql function body returning sql query for creating a report. I have created a datepicker(
P10_TASK_DATE) which can be submitted.The code is as below
DECLARE
v_sql varchar2(3000);
BEGIN
if :P10_TASK_DATE is not null THEN
v_sql:='select
* from tasks';
return v_sql;
else
v_sql:='select * from discovery';
return v_sql;
END IF;
END;if the date field is empty "select * from discovery" is executed and report is getting generated. But when we give a
date using date picker the page is submitted and i get "report error: ORA-01403: no data found" even
though the "tasks" table has data in it. Plz help
Thanks,
TJhi
Please try this
1. Create 2 region
1st region source=
select * from tasks'
go to the tab -> condition =
item NOT NULL
EXpression1 =:P10_TASK_DATE
this will run whenever the item have any date
2. open your 2 nd region source code= select * from discovery
put the condition
item is NULL
EXpression1 =:P10_TASK_DATE
thanks
Mark Wyatt -
Build a sql query fro different table and insert into a table
Hi I have a requirement ,
i have some table 1 table which holds rules which rules i have to apply on the sql query
2 table will hold table name and column name and transformation
with these help of 2 tables i want to build a sql quey and the sql query need to be insert into another table.Hi Karthick,
I am not going to build Dynamic Data Model.
i already have table 1 contains rules let's say COUNT,
and another table contain source table name , column name , Target table name, Source Table name like that
so with the help of these 2 tables i want to build Sql query and going to insert into 3rd table. -
SQL query to fetch records from 26 onwards
Want to know SQL query to fetch records from 26 onwards.
See the fifth entry on the FAQ page:
Re: How to attach a java bean in forms6i
Maybe you are looking for
-
Missing Line Items and '?' Symbols in some Reports
I have upgraded the patch level of my production server and patch level list is given below SAP_BASIS 640 0022 SAPKB64022 SAP_ABA 640 0022 SAPKA64022 ST-PI 003C_640 0001 SAPKITLPS1 PI_BASIS 2006_1_6400006 SAPKIPYL06 SAP_BW 350 0021 SAPKW35021 SAP_HR
-
Apps open and then shut down right away
Most of my apps will open but then they shut down right away....any thoughts? I did reboot
-
Can someone tell me how to get my photos back?
Apple replaced my iphone 4s due to hardware failure. When I received my new iphone 4s I did a restore using icloud backup so I could get all of my contacts, photos, etc. Well everything has come back but my photos. It keeps saying downloading but it
-
Errors while making a purchase order in Adventure Builder 1.0.4
Hi, I instaled J2EE 1.4 SDK (linux) : j2eesdk-1_4_03-linux.bin thar includes Sun Java System Application Server PE 8.2 and Java Adventure Builder 1.0.4. After the "build" and "deploy" of the Adventure, following the steps presented in Install.html, i
-
I synced my iphone with an older computer to update the computer, but the iphone ended up with all the old data (phone numbers, etc). How do I get the newer data back?