2 sql tables 1 java form...
so im making a program for my 1st year exam and there is this create user form that is driving me crazy...
In the form there is these fields Firstname, Lastname, Address, Zipcode, City, Phonenr, EAN Nr, Ref, Username and Password.
In my MsSQL db i have 2 tables, login and user.
Table user has a pk that is named userid whch is a identity colum and table login has fk named userid.
Now what i want is that when the user adds info to the form and presses the okay buttom gets placed in the two different tables.
But i get this exception com.microsoft.sqlserver.jdbc.SQLServerException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_login_user". The conflict occurred in database "gruppe1", table "dbo.user", column 'userid'.
I hope some one can help, i have included a whole lot of code but if you need more say so..
Method for inserting user
public User createUser(User u) throws SQLException {
Connection con = getConnection();
try {
PreparedStatement ps = con.prepareStatement("INSERT INTO bruger VALUES (?, ?, ?, ?, ?, ?, ?, ?)", PreparedStatement.RETURN_GENERATED_KEYS);
ps.setString(1, u.getFirstName());
ps.setString(2, u.getLastName());
ps.setString(3, u.getAddress());
ps.setInt(4, u.getZip());
ps.setString(5, u.getCity());
ps.setInt(6, u.getPhone());
ps.setInt(7, u.getEan());
ps.setString(8, u.getRefId());
ps.executeUpdate();
ResultSet keys = ps.getGeneratedKeys();
keys.next();
int usrid = keys.getInt(1);
return new User(usrid, u.getFirstName(), u.getLastName(), u.getAddress(), u.getZip(), u.getCity(), u.getPhone(), u.getEan(), u.getRefId());
} finally {
con.close();
}Method for inserting login info
public Login createLogin(Login log) throws SQLException
Connection con = getConnection();
try
PreparedStatement ps = con.prepareStatement("INSERT INTO login VALUES (?, ?, ?, ?)", PreparedStatement.RETURN_GENERATED_KEYS);
ps.setString(1, log.getBrugernavn());
ps.setString(2, log.getPassword());
ps.setInt(3, log.getAccesslevel());
ps.setInt(4, log.getBrugerid());
ps.executeUpdate();
ResultSet keys = ps.getGeneratedKeys();
keys.next();
int logid = keys.getInt(1);
return new Login(logid, log.getBrugernavn(), log.getPassword(), log.getAccesslevel(), log.getBrugerid());
finally
con.close();
}method for okay button
private void jButton2MouseClicked(java.awt.event.MouseEvent evt)
User usr = new User();
Login log = new Login();
DBmanager dbman = new DBmanager();
usr.setFirstName(firstNameField.getText());
usr.setLastName(lastNameField.getText());
usr.setAddress(addressField.getText());
usr.setZip(Integer.parseInt(zipField.getText()));
usr.setPhone(Integer.parseInt(phoneField.getText()));
usr.setEan(Integer.parseInt(eanField.getText()));
usr.setRefId(refField.getText());
usr.setCity(cityField.getText());
log.setBrugernavn(userNameField.getText());
log.setPassword(passWordField.getText());
log.setBrugerid(usr.getId());
try {
dbman.createUser(usr);
dbman.createLogin(log);
} catch (SQLException ex) {
Logger.getLogger(createUserView.class.getName()).log(Level.SEVERE, null, ex);
} It adds the user part into the user table but not the login part, i know it´s because it dosent transfer the userid from user table to login table..
How to do it?
I know my code is a bit messy so dont bash me :P
thank you
theomi wrote:
This is what i wanna do in java but i have trouble "translating" it
use gruppe1
insert into bruger (firstname, lastname, address, zipcode)
values ('ib', 'mathiesen', 'kongevej 2', 6510)
INSERT INTO login (username, userid)
values ('ib', @@IDENTITY)
SELECT userid
FROM user c
WHERE NOT EXISTS
SELECT *
FROM login x
WHERE x.userid = c.userid
Yes, I have a problem converting that too, since you have 2 seperate statements here instead of a complex insert--insert from a select.
You need something along the line of:
insert into login (username, userid)
select username, userid from user c where not exists(
select 1 from login x where x.userid = c.userid and
c.username = <myUserName>)This is not tested SQL, but is of the form you need to use.
Similar Messages
-
Using PL/SQL Table in Forms
Hi,
I am populating a PL/SQL table by fetching data through a explicit cursor. But when i am accessing the PL/SQL table after population, i am getting a "NO DATA FOUND" error.
I am attaching the Forms local progam units which have the logic.
PACKAGE f_get_bike_makers IS
TYPE prectype_maker_dtls_pll IS RECORD (
country_code ad_bike_maker_details.abmd_country_code%TYPE,
country_name table_values.tvs_description%TYPE,
manu_code ad_bike_maker_details.abmd_manufacturer_code%TYPE,
maker_name ad_bike_maker_details.abmd_maker_name%TYPE,
maker_name_kana ad_bike_maker_details.abmd_maker_name_kana%TYPE,
const_by ad_bike_maker_details.abmd_constructed_by%TYPE,
const_time ad_bike_maker_details.abmd_construction_time%TYPE,
update_by ad_bike_maker_details.abmd_updated_by%TYPE,
update_time ad_bike_maker_details.abmd_updated_time%TYPE
TYPE ptabtype_maker_dtls_pll IS TABLE OF prectype_maker_dtls_pll
INDEX BY BINARY_INTEGER;
FUNCTION f_get_bike_makers_pll RETURN ptabtype_maker_dtls_pll;
END;
PACKAGE BODY f_get_bike_makers IS
FUNCTION f_get_bike_makers_pll
RETURN ptabtype_maker_dtls_pll
IS
CURSOR cur_maker_dtls
IS
SELECT abmd.abmd_country_code,
tvs.tvs_description,
abmd.abmd_manufacturer_code,
abmd.abmd_maker_name,
abmd.abmd_maker_name_kana,
abmd.abmd_constructed_by,
abmd.abmd_construction_time,
abmd.abmd_updated_by,
abmd.abmd_updated_time
FROM ad_bike_maker_details abmd,
table_values tvs
WHERE abmd.abmd_country_code = tvs.tvs_code
AND tvs.tvs_tad_code = 'COUNTRIES'
ORDER BY abmd.abmd_country_code;
ln_tab_index BINARY_INTEGER := 0;
ltab_maker_dtls ptabtype_maker_dtls_pll;
BEGIN
FOR lcur_maker_dtls IN cur_maker_dtls
LOOP
ln_tab_index := ln_tab_index + 1;
ltab_maker_dtls (ln_tab_index) := lcur_maker_dtls;
END LOOP;
RETURN ltab_maker_dtls;
END f_get_bike_makers_pll;
END;
PROCEDURE f_populate_maker_names
IS
ltab_maker_dtls f_get_bike_makers.ptabtype_maker_dtls_pll;
lb_record_group BOOLEAN;
ln_ltab_maker_dtls_index BINARY_INTEGER;
BEGIN
-- read all the vehicle types from table_values
-- get makers and countries
ltab_maker_dtls := f_get_bike_makers.f_get_bike_makers_pll ;
DELETE_GROUP_ROW ('REC_MAKER_NAME', all_rows);
ln_ltab_maker_dtls_index := ltab_maker_dtls.FIRST;
begin
WHILE ln_ltab_maker_dtls_index IS NOT NULL
LOOP
lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
'ABMD_MANUFACTURER_CODE',
ltab_maker_dtls (ln_ltab_maker_dtls_index).manu_code,
ln_ltab_maker_dtls_index
lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
'ABMD_MAKER_NAME',
ltab_maker_dtls (ln_ltab_maker_dtls_index).maker_name,
ln_ltab_maker_dtls_index
lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
'COUNTRY_NAME',
ltab_maker_dtls (ln_ltab_maker_dtls_index).country_name,
ln_ltab_maker_dtls_index
lb_record_group := l_record_group.insert_value ('REC_MAKER_NAME',
'ABMD_COUNTRY_CODE',
ltab_maker_dtls (ln_ltab_maker_dtls_index).country_code,
ln_ltab_maker_dtls_index
ln_ltab_maker_dtls_index := ltab_maker_dtls.NEXT (ln_ltab_maker_dtls_index);
end;
END LOOP;
exception when no_data_found then
message('ln_ltab_maker_dtls_index :'||ln_ltab_maker_dtls_index);
message(' ');
end;
ltab_maker_dtls.DELETE;
END;
SQL> desc ad_bike_maker_details
Name Null? Type
ABMD_COUNTRY_CODE NOT NULL VARCHAR2(2)
ABMD_MANUFACTURER_CODE NOT NULL VARCHAR2(2)
ABMD_MAKER_NAME VARCHAR2(60)
ABMD_MAKER_NAME_KANA VARCHAR2(60)
ABMD_CONSTRUCTED_BY NOT NULL VARCHAR2(20)
ABMD_CONSTRUCTION_TIME NOT NULL DATE
ABMD_UPDATED_BY VARCHAR2(20)
ABMD_UPDATED_TIME DATE
SQL> desc table_values
Name Null? Type
TVS_TAD_CODE NOT NULL VARCHAR2(15)
TVS_CODE NOT NULL VARCHAR2(15)
TVS_DESCRIPTION NOT NULL VARCHAR2(70)
Oracle Database Version
=======================
Oracle8 Enterprise Edition Release 8.0.6.1.0 - Production
PL/SQL Release 8.0.6.1.0 - Production
Forms Version
==============
Forms [32 Bit] Version 5.0.6.8.0 (Production)
PL/SQL Version 2.3.4.0.0 (Production)
Please do let know what could be the possible source of error.
Thanks in advance.
NitinBut we have to use the PL/SQL table as per our design standards.
We are implementing the population logic of the PL/SQL table in the database as a
package function. We are then accessing the PL/SQL table in Forms to populate the record group.It is curious that you would have such a unique requirement -- something that might make forms run a tiny bit faster -- yet you are using an ancient version of Forms.
Also the "NO DATA FOUND" error is not raised everytime the PL/SQL table is accessed.
What could be the reason for this erratic behaviour?I wonder if there may be a bug in SQL Net in the Oracle-to-Forms communication where PL/SQL tables are passed as out parameters. I know there is one in Web Forms 6 (6.0.8.19.1) when passing a pl/sql table from the form to Oracle -- I had to write the pl/sql table to a database table to get my process to work. -
Hi all ..
I am using Forms 6i ....
on WHEN-BUTTON-PRESSED Trigger i am calling a procedure ..
pkg_test.display_proc( Code_ID IN varchar2,
keyword IN varchar2,
v_tab_ret OUT tab_type )
The procedure is returning a PL/SQL table type .... which consist of 5 fields.....
Problem :- How can i display this v_tab_ret ( PL/SQL Table) in the Display Item in the form canvas ... This v_tab_ret is supposed to return variable number of rows depending on the conditions in the procedure ...
Thanks ,HI,
In forms6i, you can define the variable based on the PL/SQL table as you do in the packages.
In the WHEN-BUTTON-PRESSED trigger, do the following
DECLARE
v_tab_ret tab_type
BEGIN
-- call your procedure:
pkg_test.display_proc( Code_ID ,
keyword,
v_tab_ret
-- Now you have the pl/sql table populated from the procedure.
END;
Depends on the type of block (single / multi record), you can decide how to manipulate and show the value you got in the PL/SQL tabe.
Regards,
Venkat -
PL/SQL table type in Forms 4.5
Hi
I am trying to use a pl/sql table type variable in Oracle forms 4.5 . I am able to compile this and run it on the database that the application connects to but in forms , it gives me a compilation error.
Is there some restriction on using this datatype in forms 4.5
Following is the syntax I am using:
TYPE block_list_type IS TABLE of VARCHAR2(200) INDEX BY BINARY_INTEGER;
block_list block_list_type;
I get fatal syntax error even though the syntax is correct(checked it on the database).
please let me know if I am doing something wrong.
thanks a lotThat explains it!!
Thanks. My company is on oracle 10.7 and is too reluctant to move to higher versions. They finally bought I2 and are developing their own custom java applications and will phase out 10.7 but are not willing to move to the next version of Oracle !!
Seems like they are done with Oracle .
thanks for the input anyways. -
JSP + MYSQL question: input form value into a SQL table
Hello,
I am writing some JSP code to read input information from a input form to write this information into a SQL field.
My problems are:
- how can i pass the input form information to other jsp file ? (like Getproperty of something like this)
- how can i move the content of any input information into a variable ? I mean something like this:
String a1;
username.value.of.the.input.field.in.forum_jsp = a1.in.addmessage_jsp;and then:
int rowsAffected = stmt.executeUpdate("INSERT INTO forummessages (messagecode, " + " usercode, " + " messagedate, " + " message) VALUES(6,3,06/07/2007,'" + a1 + "')");------
The SQL table looks like this:
stmt.executeUpdate("CREATE TABLE forummessages (messagecode int AUTO_INCREMENT PRIMARY KEY, usercode int, messagedate date, message char(255) not null)");My codes are:
forum.jsp - this one should pass the input information to addmessage.jsp
<%@ page contentType="text/html; charset=iso-8859-2" %>
<%@ page import="java.sql.*" %>
<%
Connection con = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mysql";
con = DriverManager.getConnection(url,"root", "");
stmt = con.createStatement();
String sql = "SELECT * FROM forummessages,users,bmwecode WHERE (forummessages.usercode=users.usercode) AND (users.bmwcode=bmwecode.bmwcode)";
ResultSet rs = stmt.executeQuery(sql);
%>
<html>
<head>
<title>JSP + MYSQL Teszt</title>
</head>
<body>
<a href="forum.jsp">Forum / Uj hozzaszolas</a>
<a href="userlist.jsp">Felhasznalok kilistazasa</a>
<a href="adduser.jsp">Felhasznalo hozzadasa</a>
<a href="deletemessage.jsp">Hozzaszolas torlese</a>
<br><br>
<form action="addmessage.jsp" method=post">
Felhasznalo:
<input type="text" name="username">
<br><br>
Hozzaszolas:
<input type="text" name="message">
<br><br>
<input type="submit" value="Uj hozzaszolas">
<br><br>
<table border="0">
<tr>
<th>messagecode</th>
<th>user</th>
<th>car type</th>
<th>message</th>
</tr>
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getInt("messagecode") %></td>
<td><%=rs.getString("username") %></td>
<td><%=rs.getString("bmwtype") %></td>
<td><%=rs.getString("message") %></td>
</tr>
<%
} // end while
%>
</table>
</body>
</html>
<%
} catch (Exception e) {
out.println("<font color=red><h3>Error:</h3></font>" + e);
e.printStackTrace();
} finally {
try {
if (stmt!=null) {
stmt.close();
if (con!=null) {
con.close();
} catch (Exception e) {
e.printStackTrace();
%> ----
addmessage.jsp
<%@ page contentType="text/html; charset=iso-8859-2" %>
<%@ page import="java.sql.*" %>
<%
Connection con = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mysql";
con = DriverManager.getConnection(url,"root", "");
stmt = con.createStatement();
int rowsAffected = stmt.executeUpdate("INSERT INTO forummessages (messagecode, " + " usercode, " + " messagedate, " + " message) VALUES(6,3,06/07/2007,'" + a1 + "')");
} catch (Exception e) {
out.println("<font color=red><h3>Hiba:</h3></font>" + e);
e.printStackTrace();
} finally {
try {
if (stmt!=null) {
stmt.close();
if (con!=null) {
con.close();
} catch (Exception e) {
e.printStackTrace();
%>
<a href="forum.jsp">Forum / Uj hozzaszolas</a>
<a href="userlist.jsp">Felhasznalok kilistazasa</a>
<a href="adduser.jsp">Felhasznalo hozzadasa</a>
<a href="deletemessage.jsp">Hozzaszolas torlese</a>
<br><br>---
Thank you for your help in advance.SELECT DISTINCT
hou.name
,poh.segment1 po_num
,pol.line_num po_line_num
,poh.currency_code
--,trunc(poh.creation_date) po_creation_date
,pol.cancel_flag
,msi.segment1 item_num
,pol.unit_price
,round(cost.item_cost,5)
,round((&p_rate * pol.unit_price),5) "CONVERSION"
,(cost.item_cost - round((&p_rate * pol.unit_price),5)) difference
,pov.vendor_name
FROM
po.po_headers_all poh
,po.po_lines_all pol
,po.po_vendors pov
,hr.hr_all_organization_units hou
,inv.mtl_system_items_b msi
,bom.cst_item_costs cost
WHERE
poh.po_header_id = pol.po_header_id
and pov.vendor_id = poh.vendor_id
and poh.org_id = hou.organization_id
and hou.organization_id = :p_operating_unit
and poh.currency_code = :p_currency
and poh.creation_date between :po_creation_date_from and :po_creation_date_to
and poh.type_lookup_code = 'BLANKET'
and msi.inventory_item_id = pol.item_id
and cost.INVENTORY_ITEM_ID = pol.ITEM_ID
--and (cost.item_cost - pol.unit_price) <> 0
and (cost.item_cost - round((&p_rate * pol.unit_price),5)) <> 0
and cost.organization_id = 1
and msi.organization_id = 1
and cost.cost_type_id = 3 --- Pending cost type
and nvl(upper (pol.closed_code),'OPEN') not in('CANCELLED', 'CLOSED', 'FINALLY CLOSED', 'REJECTED')
and nvl(upper (poh.closed_code),'OPEN') not in('CANCELLED', 'CLOSED', 'FINALLY CLOSED', 'REJECTED')
and nvl(pol.cancel_flag, 'N') = 'N'
and &p_rate user parameter
I want this p_rate to be passed as a user parameter. -
Joining java array with SQL table in a stored procedure
Hey,
I am calling a pl/sql stored procedure from a java program passing two arrays (employees) and (departments) as parameters to the procedure. Within the procedure I have stored the arrays in a table of records like this:
type t_emp_type is record (employee_id number, department_id number);
type t_emp_tbl_type is table of t_emp_type index by binary_integer;
Where all elements in employees are stored in the employee_id column and departments are stored in the department_id column. So basically I've got a table like:
l_employee_tbl t_emp_tbl_type;
Looped through the arrays and stored the data like:
for i in 1..p_employees.count loop
l_employee_tbl(i).employee_id := p_employees(i);
l_employee_tbl(i).deparment_id := p_departments(i);
end loop;
Now I would like to compare my l_employee_tbl with a SQL table in the database. Basically I would like to join my l_employee_tbl table with a SQL table named departments on department_id, returning all department_id:s that was not found in table departments.
However, it is not possible to select from a user-defined table type. I have also tried to use the table() function and to cast l_employee_tbl, but found out it can't be done with records. And I would really like to use records or some other type where define my PL/SQL data. I know that you should not mix PL/SQL and SQL but in this case I think it is more efficient to try joining these "tables". Does anyone have a solution for this or advice to try something else out? It would be most appreciated.
Edited by: 963281 on 2012-okt-04 14:25
Edited by: 963281 on 2012-okt-05 01:53963281 wrote:
I am calling a pl/sql stored procedure from a java program passing two arrays (p_employees) and (p_departments) as parameters to the procedure. Within the procedure I have stored the arrays in a table of records like this:
type t_emp_type is record (employee_id number, department_id number);
type t_emp_tbl_type is table of t_emp_type index by binary_integer;Why do you create an associative array?
Now I would like to compare my l_employee_tbl with a SQL table in the database. Basically I would like to join my l_employee_tbl table with a SQL table named departments on department_id, returning all department_id:s that was not found in table departments. Of course, not possible as the SQL engine does not support PL/SQL user defined types. PL/SQL however support user defined SQL types. Which makes SQL defined types a lot more flexible.
However, it is not possible to select from a user-defined table type. I have also tried to use the table() function and to cast l_employee_tbl, but found out it can't be done with records. Never mind SQL and PL/SQL - as a generic programming data structure principle. How do you expect being able to cast an associative array (name-value pairs) to a standard array? The two data structures are very different. So I'm puzzled in how you expect to move a non-scalar name-value pair data structure into a non-scalar value only data structure?
And I would really like to use records or some other type where define my PL/SQL data. Why exactly? If the Java or PL/SQL data structure is populated using SQL data and database data, and wanting to use that data structure in SQL, what is the point? Why pull SQL data into a client data structure at all then - surely it is far more performant and scalable to rather keep that data in the database, and do the joins/selects/filters/etc using SQL?
There is also the issue of scalability of local data structures in PL/SQL. The PL/SQL engine runs inside an Oracle server process, consuming private process memory on the server. The bigger the data structures used in PL/SQL, the more server memory needs to be allocated to that server process. This does not scale. Especially not if 10 or more such server processes are running the same PL/SQL code and each server needs to grab large chunks of server memory.
If the data from Java comes from another source (e.g. keyboard, etc), and you need a means of storing this data server-side for use by PL/SQL and SQL. There are 2 basic choices. PL/SQL arrays for smallish amounts of data - and basing these arrays preferable on SQL data types allowing the array to be used by both SQL and PL/SQL engines. If the amount of data is not smallish, then it should be stored in the SQL engine (database) as that is designed for that exact purpose. And if the data is transient, then a GTT (global temp table) structure can be used (and indexed for optimal access). -
Can anyone help me in a problem with PL/SQL Tables & the Java getArray()
The problem is the following:
I would tike to get a PL/SQL Table (a table of varchar2) into a Java String Array.
It works very well except that instead of getting the characters in the PL/SQL Table
I receive the character codes in each string.
In the following example i should get:
spring
summer
outumn
winter
Instead I get:
0x737072696E67
0x73756D6D6572
0x6F7574756D6E
0x77696E746572
Steps to try the sample
1)Creating the following type
create or replace TYPE CHAR_ARRAY IS TABLE OF VARCHAR(32767);
2)Creating the following stored procedure
create or replace PROCEDURE MQ_MSG_PROCESSOR
MessageText in VARCHAR2,
QueueName out VARCHAR2,
RplyMessage out CHAR_ARRAY,
HastoCommit out NUMBER
AS
RMessage CHAR_ARRAY;
BEGIN
QueueName:='DEV_OUT';
RMessage:=CHAR_ARRAY();
RMessage.Extend(4);
RMessage(1):='spring';
RMessage(2):='summer';
RMessage(3):='outumn';
RMessage(4):='winter';
HastoCommit:=1;
RplyMessage:=RMessage;
END;
3)Copiling and running the following java class
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.oracore.Util;
import oracle.jdbc.driver.*;
import java.util.Dictionary;
public class ArrayExample
public static void main (String args[]) throws Exception
MSG Msg=null;
oracle.sql.ARRAY RMsg=null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection ("jdbc:oracle:oci8:@test","test", "test");
conn.setAutoCommit (false);
try
String []array={};
ArrayDescriptor desc=ArrayDescriptor.createDescriptor("CHAR_ARRAY",conn);
ARRAY CHAR_ARRAY=new ARRAY(desc,conn,array);
OracleCallableStatement sproc = (OracleCallableStatement)conn.prepareCall("{call GSM.MQ_TST.MQ_MSG_PROCESSOR(?, ?, ?, ?)}");
sproc.setString(1, "hello"); //MessageText
sproc.registerOutParameter(2, OracleTypes.VARCHAR); //QueueName
sproc.registerOutParameter(3, OracleTypes.ARRAY,"CHAR_ARRAY"); //RplyMessage
sproc.registerOutParameter(4, OracleTypes.NUMBER); //HastoCommit
sproc.execute();
CHAR_ARRAY=(oracle.sql.ARRAY)sproc.getARRAY(3);
array = (String [])CHAR_ARRAY.getArray();
for(int i=0;i<array.length;i++)
System.out.println(array);
catch(SQLException e)
System.out.println("Error while trying to execute MQ_MSG_PROCESSOR");
System.out.println(e);
conn.close();Hi,
I tried the code with same procedure.
That works out fine for me..
and it prints out exactly the same words as you mentioned..:))
may be you must have changed something later on.. which started printing character codes..
but for me it works perfectly fine..
All The Best..
Regards
Gurudatt
The problem is the following:
I would tike to get a PL/SQL Table (a table of
varchar2) into a Java String Array.
It works very well except that instead of getting the
characters in the PL/SQL Table
I receive the character codes in each string.
In the following example i should get:
spring
summer
outumn
winter
Instead I get:
0x737072696E67
0x73756D6D6572
0x6F7574756D6E
0x77696E746572
Steps to try the sample
1)Creating the following type
create or replace TYPE CHAR_ARRAY IS TABLE OF
VARCHAR(32767);
2)Creating the following stored procedure
create or replace PROCEDURE MQ_MSG_PROCESSOR
���MessageText in VARCHAR2,
���QueueName out VARCHAR2,
���RplyMessage out CHAR_ARRAY,
���HastoCommit out NUMBER
AS
���RMessage CHAR_ARRAY;
BEGIN
���QueueName:='DEV_OUT';
���RMessage:=CHAR_ARRAY();
���RMessage.Extend(4);
���RMessage(1):='spring';
���RMessage(2):='summer';
���RMessage(3):='outumn';
���RMessage(4):='winter';
���HastoCommit:=1;
���RplyMessage:=RMessage;
END;
3)Copiling and running the following java class
import java.sql.*;
import oracle.sql.*;
import oracle.jdbc.oracore.Util;
import oracle.jdbc.driver.*;
import java.util.Dictionary;
public class ArrayExample
���public static void main (String
args[]) throws Exception
���{
������MSG Msg=null;
������oracle.sql.ARRAY
RMsg=null;
������DriverManager.regis
erDriver(new oracle.jdbc.driver.OracleDriver());
������Connection conn =
DriverManager.getConnection
("jdbc:oracle:oci8:@test","test", "test");
������conn.setAutoCommit
(false);
������try
������{
���������S
ring []array={};
���������A
rayDescriptor
desc=ArrayDescriptor.createDescriptor("CHAR_ARRAY",conn
���������A
RAY CHAR_ARRAY=new ARRAY(desc,conn,array);
���������O
acleCallableStatement sproc =
(OracleCallableStatement)conn.prepareCall("{call
GSM.MQ_TST.MQ_MSG_PROCESSOR(?, ?, ?, ?)}");
���������s
roc.setString(1, "hello"); //MessageText
���������s
roc.registerOutParameter(2,
OracleTypes.VARCHAR);���//QueueName
���������s
roc.registerOutParameter(3,
OracleTypes.ARRAY,"CHAR_ARRAY");���//Rpl
Message
���������s
roc.registerOutParameter(4,
OracleTypes.NUMBER);������
//HastoCommit
���������s
roc.execute();
���������C
AR_ARRAY=(oracle.sql.ARRAY)sproc.getARRAY(3);
���������a
ray = (String [])CHAR_ARRAY.getArray();
���������f
r(int i=0;i<array.length;i++)
���������{
System.out.println(array);
���������}
������}
������catch(SQLException
e)
������{
���������S
stem.out.println("Error while trying to execute
MQ_MSG_PROCESSOR");
���������S
stem.out.println(e);
������}
������conn.close();
���} -
Forms based on PL/SQL table/ref_cursor
I fail to tetrieve selected records from a stored package.procedure(which I have created as a ref_cursor to PL/SQL table and specifying a criteria in the forms where clause)
Please any one suggest ?I suggest you read the [url http://forums.oracle.com/forums/help.jspa]FAQ and [url http://blogs.oracle.com/shay/2007/03/02]The 10 Commandments on OTN Forum Posting
Forms version and an error message would help us to help you, we don't have crystal balls, we cannot guess. -
Inserting records from Infopath forms library to a SQL table
Hi,
I have a requirement where i need to populate records from a Infopath forms library to a SQL table in a database. We have written a console app to achive the same. However we are encountering performance issues when inserting records in the database. The
way we retreive information from Infopath forms library is through a CAML query and then insert record by record in database. Is their a better and faster way to acheive this?
Can someone pls help?
thanks,
Anand
Thanks and Regards, Anand R. DeshpandeHello Anand,
Could you share you console application code? Also tell us when you face performance issue. I mean is there any problem in accessing infopath form or you are facing problem with only console application.
Hemendra:Yesterday is just a memory,Tomorrow we may never see
Please remember to mark the replies as answers if they help and unmark them if they provide no help -
How to generate XML from relational data : PL/SQL or Java
I'm new to Oracle XML and would appreciate some advice. I've been asked to generate XML documents from data stored in relational tables. The XML documents must be validated against a DTD. We will probably want to store the XML in the database.
I've seen a PL/SQL based approach as follows :
1.Mimic the structure of the DTD using SQL object types 2.Assign the relational data to the object type using PL/SQL as required
3.Use the SYS_XMLGEN package to render the required XML documents from the SQL objects
However, creating the object types seems to be quite time consuming (step 1 above) for anything other than the simplest of XML documents.
I've also seen that there is the Java based approach, namely :
1. Use the XML generator to build Java classes based on a DTD.
2. Use these classes to build the required XML
On the face of it, the Java based approach seems simpler. However, I'm not that familiar with Java.
Which is the best way to proceed ? Is the PL/SQL based approach worth pursuing or should I bite the bullet and brush up my Java ?
Is it possible to use a combination of PL/SQL and Java to populate the dtd generated java classes (step 2 of the Java approach) to reduce my learning curve ?
Thanks in advanceTo help answer your questions:
1) Now, in 9iR2, you can use SQL/XML as another choice.
2) You can also use XSU to generate the XML and use XSLT to transform it to a desired format instead of using object views if possible.
3) XDK provide Class generator support to populate XML data to Java classes. -
PL/SQL and Java Swing interface
Everybody in this forum knows that Oracle is the best database around
with many functionalities, stability, performance, etc. We also know
that PL/SQL is a great language to manipulate information directly
in the database with many built in functions, OOP capability,
transaction control, among other features. Today an application that
manipulates information, which needs user interface, requires components
to be developed using different technologies and normally running in
different servers or machines. For example, the interface is done using
a dynamic HTML generator like JSP, PHP, PL/SQL Web Toolkit, etc.
This page is executed in an application server like Oracle iAS or
Tomcat, just to name two, which in turn access a database like Oracle to
build the HTML. Also rich clients like Java applets require an intermediate
server to access the database (through servlets for example) although
it is possible to access the database directly but with security issues.
Another problem with this is that complexity increases a lot, many
technologies, skills and places to maintain code which leads to a greater
failure probability. Also, an application is constantly evolving, new
calculations are added, new tables, changed columns. If you have an
application with product code for example and you need to increase its
size, you need to change it in the database, search for all occurrences
of it in the middle-tier code and perhaps adjust interfaces. Normally
there is no direct dependency among the tier components. On another
issue, many application interfaces today are based on HTML which doesn't
have interactive capabilities like rich-client interfaces. Although it
is possible to simulate many GUI widgets with JavaScript and DHTML, it is
far from the interactive level we can accomplish in rich clients like
Java Swing, Flash MX, Win32, etc. HTML is also a "tag-based" language
originally created to publish documents so even small pages require
many bytes to be transmitted, far beyond of what we see on the screen.
Even in fast networks you have a delay time to wait the page to be
loaded. Another issue, the database is in general the central location
for all kinds of data. Most applications relies on it for security,
transaction and availability. My proposal is to use Oracle as the
central location for interface, processing and data. With this approach
we can create not only the data manipulation procedures in the database,
but procedures that also control and manage user interfaces. Having
a Oracle database as the central location for all components has many
advantages:
- Unique point of maintenance, backup and restore
- Integrated database security
- One language for everything, PL/SQL or Java (even both if desired)
- Inherited database cache, transaction and processing optimizations
- Direct access to the database dictionary
- Application runs on Oracle which has support for many platforms.
- Transparent use of parallel processing, clusters and future
background technologies
Regarding the interface, I already created a Java applet renderer
which receives instructions from the database on how to create GUI
objects and how to respond to events. The applet is only 8kb and can
render any Swing or AWT object/event. The communication is done
through HTTP or HTTPS using Oracles's MOD_PLSQL included in the Apache
HTTP server which comes with the database or application server (iAS).
I am also creating a database framework and APIs in PL/SQL to
create and manipulate the client interface. The applet startup is
very fast because it is very small, you don't need to download large
classes with the client interface. Execution is done "on-demand"
according to instructions received from the database. The instructions
are very optimized in terms of network bandwidth and based on preliminary
tests it can be up to 1/10 of a similar HTML screen. Less network usage
means faster response and means that even low speed connections will
have a good performance (a future development can be to use this in
wireless devices like PDAs e even cell phones, just an idea for now).
The applet can also be executed standalone by using Java Web Start.
With this approach no business code, except the interface, is executed
on the client. This means that alterations in the application are
dynamically reflected in the client, no need to "re-download" the
application. Events are transmitted when required only so network
usage is minimized. It is also possible to establish triggering
events to further reduce network usage. Since the protocol used is
HTTP (which is stateless), the database framework I am creating will
be responsible to maintain the state of connections, variables, locks
and session information, so the developer don't need to worry about it.
The framework will have many layers, from communication up to
application so there will be pre-built functions to handle queries,
pagination, lock, mail, log, etc. The final objective is to have a
rich client application integrated into the database with minimum
programming and maintenance requirements, not forgetting customization
capabilities. Below is a very small example of what can de done. A
desktop with two windows, each window with two fields, a button with an
image to switch the values, and events to convert the typed text when
leaving the field or double-clicking it. The "leave" event also has an
optimization to only be triggered when the text changes. I am still
developing the framework and adjusting the renderer but I think that all
technical barriers were transposed by now. The framework is still in
the early stages, my guess is that only 5% is done so far. As a future
development even an IDE can be created so we have a graphical environment
do develop applications. I am willing to share this with the PL/SQL
community and listen to ideas and comments.
Example:
create or replace procedure demo1 (
jre_version in varchar2 := '1.4.2_01',
debug_info in varchar2 := 'false',
compress_buffer in varchar2 := 'false',
optimize_buffer in varchar2 := 'true'
) as
begin
interface.initialize('demo1_init','JGR Demo 1',jre_version,debug_info,compress_buffer,optimize_buffer);
end;
create or replace procedure demo1_init as
begin
toolkit.initialize;
toolkit.create_icon('icon',interface.global_root_url||'img/switch.gif');
toolkit.create_internal_frame('frame1','Frame 1',50,50,300,136);
toolkit.create_label('frame1label1','frame1',10,10,50,20,'Field 1');
toolkit.create_label('frame1label2','frame1',10,40,50,20,'Field 2');
toolkit.create_text_field('frame1field1','frame1',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame1field2','frame1',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame1field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame1field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame1field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button1','frame1',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button1',toolkit.action_performed_event,'demo1_switch_fields(''frame1field1'',''frame1field2'')','frame1field1:'||toolkit.get_text_method||',frame1field2:'||toolkit.get_text_method);
toolkit.create_internal_frame('frame2','Frame 2',100,100,300,136);
toolkit.create_label('frame2label1','frame2',10,10,50,20,'Field 1');
toolkit.create_label('frame2label2','frame2',10,40,50,20,'Field 2');
toolkit.create_text_field('frame2field1','frame2',50,10,230,20,'Field 1','Field 1',focus_event=>true,mouse_event=>true);
toolkit.create_text_field('frame2field2','frame2',50,40,230,20,'Field 2','Field 2',focus_event=>true,mouse_event=>true);
toolkit.set_text_field_event('frame2field1',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,'FIELD 2','false');
toolkit.set_text_field_event('frame2field1',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 1','false');
toolkit.set_text_field_event('frame2field2',toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,'field 2','false');
toolkit.create_button('button2','frame2',10,70,100,25,'Switch','Switch the values of "Field 1" and "Field 2"','S','icon');
toolkit.set_button_event('button2',toolkit.action_performed_event,'demo1_switch_fields(''frame2field1'',''frame2field2'')','frame2field1:'||toolkit.get_text_method||',frame2field2:'||toolkit.get_text_method);
end;
create or replace procedure demo1_set_upper as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,upper(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_set_lower as
begin
toolkit.set_string_method(interface.global_object_name,toolkit.set_text_method,lower(interface.array_event_value(1)));
toolkit.set_text_field_event(interface.global_object_name,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;
create or replace procedure demo1_switch_fields (
field1 in varchar2,
field2 in varchar2
) as
begin
toolkit.set_string_method(field1,toolkit.set_text_method,interface.array_event_value(2));
toolkit.set_string_method(field2,toolkit.set_text_method,interface.array_event_value(1));
toolkit.set_text_field_event(field1,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.focus_lost_event,'demo1_set_upper',toolkit.get_text_method,upper(interface.array_event_value(1)),'false');
toolkit.set_text_field_event(field1,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(2)),'false');
toolkit.set_text_field_event(field2,toolkit.mouse_double_clicked_event,'demo1_set_lower',toolkit.get_text_method,lower(interface.array_event_value(1)),'false');
end;Is it sound like Oracle Portal?
But you want to save a layer 9iAS.
Basically, that was the WebDB.(Oracle changed the name to Portal when version 3.0)
Over all, I agree with you.
>>Having a Oracle database as the central location for all components has many
>>advantages:
>>
>>- Unique point of maintenance, backup and restore
>>- Integrated database security
>>- One language for everything, PL/SQL or Java (even both if desired)
>>- Inherited database cache, transaction and processing optimizations
>>- Direct access to the database dictionary
>>- Application runs on Oracle which has support for many platforms.
>>- Transparent use of parallel processing, clusters and future
>>background technologies
I would like to build 'ZOPE' inside Oracle DB as a back-end
Using Flash MX as front-end.
Thomas Ku. -
PL/SQL TABLE AS A PARAMETER TO PSP
Hello !
In a PSP application one of the pages is retrieving rows more than 10, and the limitation for the same is to display only 10 rows a page. Same can be done using OWA_UTIL but only if you are having a query to pass as one of the parameters.
I'm processing a PL/SQL block and storing the outcome in a PL/SL table. After showing 10 rows of a table on the first screen, would like to pass the PL/SQL table as a parameter to other .PSP so that I can display another set of 10 out there. The calling page is not getting compiled if passed a PL/SQL table as a parameter flashing an error 'number or type mismatch'.
regards,
[email protected]user445394,
Have you looked at the collections examples on this Web page:
http://www.oracle.com/technology/sample_code/tech/java/sqlj_jdbc/files/jdbc20/jdbc20.html
Good Luck,
Avi. -
PL/SQL Table use in report region query
Hello,
I have a package function which return pl/sql table. I want to create a report region based on this pl/sql table. Is it possible to do this kind of report in HTMLDB?
Please guide me in this area.
Thanks
HAThe htmldb_collections API (apec_collections in 2.2) is a very useful method for rendering reports and one I have used extensivly in the past.
Once created and populated you can reference your collection as if it were a SQL table i.e.
Select c001, c002, c003
from htmldb_collections
where collection_name = 'MY_COLLECTION';
You can absolutly base an Apex Report region on collections. Just treat them as another table that you can select from, join to others etc.
In order to utilise this you must do the following:
1) Create your collection:
note that collections only persist for the duration of your session and you can only see the data you inserted into the collection. Also I would create this collection as the Database user who owns the Apex Workspace
htmldb_collection.create_or_truncate_collection ('MY_COLLECTION');
2) Populate your collection:
In your case I would set a loop construct that parses through your pl/sql table and assign all values as described below. I assumed that my_plsql_tab has 3 columns called Val1, Val2, Val3
FOR x IN 1..my_plsql_tab.count
LOOP
htmldb_collection.add_member (p_collection_name => 'MY_COLLECTION',
p_c001 => my_plsql_tab(x).val1,
p_c002 => my_plsql_tab(x).val2,
p_c003 => my_plsql_tab(x).val3
END LOOP;
Note that you can have upto 60 elements in your collection.
3) Access your collection:
Select c001, c002, c003
from htmldb_collections
where collection_name = 'MY_COLLECTION';
This quesry can then form the source of your sql report region.
Hope all that helps
Duncan -
Passing parameters to PL/SQL table types
Hi Everybody,
I have one question about passing PL/SQL tables types and tabs as IN parameter in procedure.I am working in 11.2.0.2.0 environment. I am stuck on how to pass those values to procedure.Please find below more details:
Table 1:
CREATE TABLE ITEMS
ITEM_ID VARCHAR2(40 BYTE) NOT NULL,
ITEM_NAME VARCHAR2(40 BYTE),
SERIAL NUMBER(2),
ADDED_ON DATE);
Table 2:
CREATE TABLE ITEM_ACTIVITY_INFO
ITEM_ID VARCHAR2(40 BYTE) NOT NULL,
ACCOUNT_TYPE VARCHAR2(1 BYTE),
ID_NUMBER NUMBER(3),
ACTIVATION_DATE DATE);
Table 3:
CREATE TABLE ITEM_GROUP
GROUP_ID NUMBER(2) NOT NULL,
ITEM_ID VARCHAR2(40 BYTE),
GROUP_TYPE VARCHAR2(20 BYTE),
GROUP_DATE DATE);
Table 4:
CREATE TABLE ITEM_ADDRESS
GROUP_ID NUMBER(2) NOT NULL,
NAME VARCHAR2(60 BYTE),
ADDRESS VARCHAR2(100));
Following types are created:
CREATE OR REPLACE TYPE ITEMS_TYPE AS OBJECT
ITEM_ID VARCHAR2(40 BYTE),
ITEM_NAME VARCHAR2(40 BYTE),
SERIAL NUMBER(2),
ADDED_ON DATE);
CREATE OR REPLACE TYPE ITEM_ACTIVITY_TYPE AS OBJECT
ITEM_ID VARCHAR2(40 BYTE),
ACCOUNT_TYPE VARCHAR2(1 BYTE),
ID_NUMBER NUMBER(3),
ACTIVATION_DATE DATE);
CREATE OR REPLACE TYPE ITEM_GROUP_COMP_TYPE AS OBJECT
GROUP_ID NUMBER(2) NOT NULL,
ITEM_ID VARCHAR2(40 BYTE),
GROUP_TYPE VARCHAR2(20 BYTE),
GROUP_DATE DATE
ITEM_ADDRESS_IN ITEM_ADDRESS_TYPE);
CREATE OR REPLACE TYPE ITEM_ADDRESS_TYPE AS OBJECT
GROUP_ID NUMBER(2),
NAME VARCHAR2(60 BYTE),
ADDRESS VARCHAR2(100));
CREATE OR REPLACE TYPE ITEM_GROUP_COMP_TAB AS TABLE OF ITEM_GROUP_COMP_TYPE;
Create or replace procedure ITEM_ADD_CHANGE(
ITEM_IN IN ITEMS_TYPE,
ITEM_ACTIVITY_IN IN ITEM_ACTIVITY_TYPE,
ITEM_GROUP_IN IN ITEM_GROUP_COMP_TAB,
ITEM_OUT IN OUT ITEMS.ITEM_ID%TYPE);
Above are the paramteres we are passing to procedure.
I need help in how to pass parameters to above procedure. All comments and responses will be highly appreciated. Thanks everyone for going through the post. Please let me know if more more information is required on this problem.
Regards
DevBilly Verreynne wrote:
Types used in this fashion, only make sense if the table is based on the type. It makes very little sense to have a table structure and then to duplicate the structure using a type.
The 2 structures may be defined the same. But they are NOT interchangeable and requires one to be converted to the other to use. This is not sensible in my view. It is far easier in that case to simply use the PL/SQL macro +%RowType+ to create a duplicate structure definition - one that can natively be used for touching that table, without conversions required.
If you do want to use types, define the type, then define the table of that type, adding the required constraints (pk, fk, not null, check) to the table's definition.Billy:
Just curious, why do you say it makes very little sense to have a type modeled on a table? I do that a lot. In my case, I am getting the values from an external program, not building them manually, but it makes a lot of sense to me.
One application where I do this a lot has a java front-end that parses HL7 messages. Each message contains at least minimal information about a variable number of entities (and often several rows for an entity) in the database, and must be processed as a single atomic trasnaction. So, rather than have potentially hundreds of parameters to the "main" driver procedures for different message types I created a set of types more or less identical to the tables representing the entities. The java program parses the mesasge and populates the type, then calls the appropriate stored procedure for the message type passing in the populated types. My stored procedure then does inserts/updates or deletes as appropriate over potentially dozens of tables.
John -
Table does not exist (servlet accessing the postgres sql table)
Hello every body,
I am running servlet to access the postgres sql table. But there exist error.
ERROR: relation "employee" does not exist
I have checked the table name in database and table name into the servlet. Both are same. Please give me suggestion to solve this error.
Thankscan you connect to the database without the servlet?
put your stuff into this and try it. If it works, add something to check the table names. - %
package test;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
* Connect to a database using JDBC
public class ConnectionTest
private static final String DEFAULT_DRIVER = "your driver here";
private static final String DEFAULT_URL = "your url here";
private static final String DEFAULT_USERNAME = "your username here";
private static final String DEFAULT_PASSWORD = "your password here";
public static void main(String[] args)
Connection connection = null;
ResultSet rs = null;
try
String driver = ((args.length > 0) ? args[0] : DEFAULT_DRIVER);
Class.forName(driver);
String url = ((args.length > 1) ? args[1] : DEFAULT_URL);
String username = ((args.length > 2) ? args[2] : DEFAULT_USERNAME);
String password = ((args.length > 3) ? args[3] : DEFAULT_PASSWORD);
connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData databaseMetaData = connection.getMetaData();
System.out.println("product: " + databaseMetaData.getDatabaseProductName());
System.out.println("major : " + databaseMetaData.getDatabaseMajorVersion());
System.out.println("minor : " + databaseMetaData.getDatabaseMinorVersion());
System.out.println("schemas");
rs = databaseMetaData.getSchemas();
while (rs.next())
System.out.println(rs.getString(1));
catch (Exception e)
e.printStackTrace();
finally
close(rs);
close(connection);
public static void close(ResultSet resultSet)
try
if (resultSet != null)
resultSet.close();
catch (Exception e)
e.printStackTrace();
public static void close(Statement statement)
try
if (statement != null)
statement.close();
catch (Exception e)
e.printStackTrace();
public static void close(Connection connection)
try
if (connection != null)
connection.close();
catch (Exception e)
e.printStackTrace();
} -
Global Temp Table or PL/SQL Table
I am trying to determine if this can be done only using PL/SQL table. If not, will the usage of the global temp table affects the performance.
Here is the situation,
I have a data block that is based on a stored procedure. This stored procedure will return table of records from different database tables with join conditions. Some of the fields within the table of records will not have data returned from database tables. They will be the fields displayed on the form and the data will be entered by user.
For example:
Records will look like:
Id (will be populated by procedure)
Hist_avg (will be populated by procedure)
My_avg (will be used as field on the form so that user can enter their own avg)
Cheked (will be populated by procedure)
My questions are:
1. Is this doable in form using a data block based on PL/SQL table?
2. Will users be able to manipulate (update) the data that based on the PL/SQL table in the memory as they wish and invoke the procedure to update the underlying table when clicking on a button (Update Avg)?
3. What is the advantage of using PL/SQL table and global temp table from database and form point of views?
Any info is appreciated.Hi there...
Here is the Reference...
http://asktom.oracle.com/pls/ask/f?p=4950:8:2939484874961025998::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:604830985638
Best Regards...
Muhammad Waseem Haroon
Maybe you are looking for
-
Workstation hangs during boot from OVM Server CD
Newbie here. Downloaded OVM and created bootable CD just this afternoon. The hardware is a Dell Precision 390 with 4gB RAM; 64bit technology (Intel EM64T); BIOS at 2.2.0; Intel Matrix Storage Manager (RAID5). Virtualization Technology option is "on".
-
What does it mean "......because screen layer is locked"
I'm very new at this. Using Element 9. I've selected a portion of the picture I want to copy and use elsewhere in the photo. The box appears around the area selected, but when I try to copy/move/paste as soon as I click on the selection box I get the
-
hi all i have a K8T Neo MS-6702 with an AMD 3200+ 64 processor. also jus got a WD 250GB HDD sata now the HD is seta2 so i set the jumper on the back on mine its pins 5 & 6 when i load up the window install i hit f6, i tried a bunch of diffrent driver
-
Firefox hangs since upgrading to windows 7
I upgraded my OS to Windows 7 from XP. FF takes a long time to load https sites. I have went through all the support suggestions and none of them work. What is going on with ff?
-
Can't login to iCloud Family Manage from macbook
I click on Manage Family from the iCloud settings on my macbook and it asks for my password. I type it in and the window goes away and comes right back. I know I'm putting in the right password because when I put in the wrong one it actually says "In