Problem in creating a Forms6i Procedure.
Good Day to all!
Hi im doing a Procedure and i have a problem adding a varchar and passing it to a variable with same data type.
Like in a sample below particularly in "for x IN Y..i.column +1" statement i always encounter a problem with this line.
My question how can i add i.column + 1 since i.column is a Varchar2(10) data type same thing with Y is also a Varchar.
Please help me work out this problem.Thank you.
sample
Declare
Cursor ()
Y Varchar2(10);
Begin
for i in cursor
loop
IF ()
then
for x IN Y..i.column +1
loop
insert into table values ();
end loop;
End if;
End Loop;
End;
Lala
Lala,
this is the JDeveloper forum, which handles problems with JDeveloper and Java. Looks like your question belongs to the [PL/SQL|http://forums.oracle.com/forums/forum.jspa?forumID=75] forum.
Timo
Similar Messages
-
Problems in creating RLANG stored procedure in HANA studio
Hi,
While I am creating a stored procedure (using .hdbprocedure file) in HANA studio with language as RLANG, I am getting an error message like this: "It is not supported to use another language than sqlscript".
I have the following setting configured.
HANA System -> Administration -> Configuration ->indexserver.ini -> repository -> sqlscript_mode = UNSECURE
Any clues will be appreciated.
Best Regards
SuryaHI Raj,
This happens even for the empty procedure as following
PROCEDURE "IDMANALYTICS_OPER"."idmanalytics.hana.db.hdbprocedures::MC_ROLEMINING_CLUSTERING_R" ( )
LANGUAGE RLANG
SQL SECURITY INVOKER
READS SQL DATA AS
BEGIN
Write your procedure logic
END;
The procedure that I wanted to write is following.
PROCEDURE MC_ROLEMINING_CLUSTERING_R(IN rolemining_input "_SYS_BIC"."idmanalytics.hana.db.views/MC_ROLEMINING_VINPUT",
IN params "IDMANALYTICS_DB"."idmanalytics.hana.db.hdbtables::MC_ROLEMINING_PARAMETER",
OUT result MC_ROLEMINING_CLUSTERS_TYPE,
OUT result_hierarchy MC_ROLEMINING_HIERARCHY_TYPE,
OUT result_userorder MC_ROLEMINING_USERORDER_TYPE
LANGUAGE RLANG AS
BEGIN
noofclusters <- params$INT_VALUE[1];
simindex <- params$DOUBLE_VALUE[2];
distancemethod="jaccard"
clusteringmethod="complete"
usercol <- rolemining_input$USER_ID
privcol <- rolemining_input$PRIV_ID
#--generate user-permission matrix from user-permission table
uptable <- data.frame(users = usercol, privileges = privcol)
uniqueusers <- sort(unique(uptable$users))
uniqueprivileges <- sort(unique(uptable$privileges))
upmatrixdata <- vector()
index <- 0
for(i in uniqueusers )
for(j in uniqueprivileges) {
row_to_find <- data.frame(users=i, privileges = j)
if(duplicated(rbind(uptable, row_to_find))[nrow(uptable)+1]){
upmatrixdata <- append(upmatrixdata, 1, after = index)
else {
upmatrixdata <- append(upmatrixdata, 0, after = index)
index <- index +1
upmatrix <- matrix(
upmatrixdata ,
nrow = length(uniqueusers),
ncol = length(uniqueprivileges),
byrow = TRUE,
dimnames = list(
uniqueusers,
uniqueprivileges
#--apply hierarchical clustersing
require(vegan)
distance<-vegdist(upmatrix,method=distancemethod)
clusters<-hclust(distance,method=clusteringmethod)
#--fill clusters for given h and k
if(noofclusters > 0){
userclusters<-cutree(clusters,k=noofclusters)
tempresult <- as.data.frame(userclusters)
result <- data.frame(USER_ID=row.names(tempresult), CLUSTER_ID=tempresult$userclusters)
if(noofclusters <= 0 & simindex >= 0){
userclusters<-cutree(clusters,h=simindex)
tempresult <- as.data.frame(userclusters)
result <- data.frame(USER_ID=row.names(tempresult), CLUSTER_ID=tempresult$userclusters)
#--fill role hierarchy
clusters_merge <- as.data.frame(clusters$merge)
clusters_height <- clusters$height
clusters_order <- clusters$order
result_hierarchy <- data.frame(HEIGHT=clusters_height, V1=clusters_merge$V1, V2=clusters_merge$V2)
#--fill user order
clusters_order <- clusters$order
result_userorder <- data.frame(USERORDER=clusters_order)
END; -
Problem with creating sequence in procedure
I am getting the following error when trying to create a sequence inside a procedure:
ORA-01031: insufficient privileges
But, I have no problem creating the sequence outside the procedure, by just issuing the create sequence command.
How can I make this work?
Thanks.I am getting different result for this:
INSERT INTO DEPNODE.SEQ_MEID (proc_id, me_id, seq_id)
SELECT 'tstamp' AS proc_id, M.MANAGED_ENTITY_ID AS ME_ID, ROW_NUMBER () OVER (ORDER BY M.MANAGED_ENTITY_ID) AS seq_id
FROM FDM.MANAGED_ENTITIES M, FDM.PHYSICAL_ADDRESSES P
WHERE M.MANAGED_ENTITY_ID = P.ME_MANAGED_ENTITY_ID
AND M.MANAGED_ENTITY_ID < 5;
If I ran this at the prompt, I get the correct result:
tstamp 1 1
tstamp 2 2
tstamp 3 3
tstamp 4 4
But, if its part of the procedure, I get this:
tstamp 1 1
tstamp 1 2
tstamp 1 3
tstamp 1 4
** the middle row is the seq_id
Thanks. -
Problem In creating Java stored procedure- Urgent
Hi Guys,
I try to create a simple Java stored procedure but I get the following error message. Can you help me to sort out the problem please?.
SQL> create or replace and compile java source named "Hello"
2 as
3 public class Hello {
4 public static String hello()
5 {
6 return "Hello Oracle World";
7 }
8 }
9 /
Warning: Java created with compilation errors.
SQL> show error java source Hello;
No errors.
Thanks in advance
anthony
nullI had a similar issue, the reason for that was picking the incorrect partner link.
Make sure the name of the selected partner link in the invoke output variable is matching with the Assign, in you case lets say you mapped the
Invoke
output variable is invoke_1_CallStoredProcedure_OutputVariable ( not nvoke_1_CallStoredProcedure_OutputVariable_1)
From
<Invoke_1_CallStoredProcedure_OutputVariable>
<LF_STATUS>
To
P_lf_status ( variable)
most of the time multiple variables are created when we try to select the output variable s in the Invoke. -
Problems with creating a complex cursor
Let me prefix this post with the fact that I am really new at this and this is my first shot at creating a Stored Proc. I have the shell and I have tried to code this but I am having some issues with the cursor. Any tips or tricks that you can give me would be greatly appreciated.
Below is what I am trying to accomplish
Looking for the best approach to work with a complex cursor.
I have 4 files that are going to dump into a temp table. This is a sample of the Temp Table
CHAN_ADDR,BRA,SRC_ID,R_Flag,C_Flag,S_Flag,N_Flag,Expire_Date,Wireless_Flag
1111111111,R,1-a,,,,NDNC,7/7/2006,
2222222222,R,2-b,,,SDNC,NDNC,7/7/2006,WIR
3333333333,R,3-c,,,SDNC,NDNC,7/8/2006,
4444444444,R,4-d,y,,SDNC,NDNC,7/9/2006,WIR
5555555555,R,5-e,y,,SDNC,,7/10/2006,
6666666666,R,6-f,y,,,,,WIR
7777777777,R,7-g,,,,,,
8888888888,R,8-h,y,,,NDNC,7/7/2006,WIR
I need to take this data and dump it into another table that looks like the following:
ADDR Per_ID Method Name Expire Date Flag
1111111111 1-a Phone Nat 7/7/2006 Y
2222222222 2-b Mobile State 7/7/2006 Y
2222222222 2-b Mobile Nat 7/7/2006 Y
4444444444 3-c Mobile R 7/9/2006 y
4444444444 3-c Mobile State 7/9/2006 y
4444444444 3-c Mobile Nat 7/9/2006 y
know that I need to use a cursor using loop and fetch but I am kind of confused on how to make this work. I am fairly new to writing PL/SQL so any tips and tricks would be greatly appreciated.
For each phone number there can be 1 to 3 records written based on the flags. For each of those records I must store the phone number, the id, flag data, expire date (for only State or National) and Flag must always be checked.
I have put together a small shell of the program but what goes in the middle is where I am having some problems.
CREATE OR REPLACE PROCEDURE USP_EIM_CONTACT3_UPD
IS
CURSOR dnc_cursor IS
SELECT CHAN_ADDR,
BRA,
SRC_ID,
R_FLAG,
C_FLAG,
S_FLAG,
N_FLAG,
EBR_EXPIRE_DATE,
WIRELESS_FLAG
FROM eim_admin.RCCL_OPT_OUT_TMP;
v_counter NUMBER := 0;
v_insert NUMBER := 0;
v_sysdate DATE:=SYSDATE;
v_chan_addr eim_admin.RCCL_OPT_OUT_TMP.chan_addr%TYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE ('***Begining USP_EIM_CONTACT3_UPD, time is ' ||
TO_CHAR (v_sysdate, 'MON-DD-YYYY HH24:MI.SS'));
DBMS_OUTPUT.NEW_LINE;
FOR rec IN dnc_cursor LOOP
v_counter:=v_counter+1;
BEGIN
SELECT CHAN_ADDR
INTO v_chan_addr
FROM eim_admin.RCCL_OPT_OUT_TMP;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('*** Could not lookup RCCL_OPT_OUT_TMP. ***');
DBMS_OUTPUT.PUT_LINE('ORA-'||SQLCODE||' '||SQLERRM);
END;
BEGIN
INSERT INTO siebel.S_PER_COMM_ADDR
(ADDR)
VALUES
(rec.CHAN_ADDR);
v_insert := v_insert + SQL%ROWCOUNT;
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('*** Failed to insert into siebel.S_PER_COMM_AADDR DDR ***');
DBMS_OUTPUT.PUT_LINE('ORA-'||SQLCODE||' '||SQLERRM);
END;
END LOOP;
--Output STATISTICS.
DBMS_OUTPUT.PUT_LINE('**Number records read :'||v_counter);
DBMS_OUTPUT.NEW_LINE;
DBMS_OUTPUT.PUT_LINE ('***Completing USP_EIM_CONTACT3_UPD, time is ' ||
TO_CHAR (SYSDATE, 'MON-DD-YYYY HH24:MI.SS'));
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE(' ****Error in USP_EIM_CONTACT3_UPD ****'||SQLCODE||SQLERRM);
END USP_EIM_CONTACT3_UPD;
I have already created the table. What we are going to do is using sqlloader to load our text files into our temp table. From there we are going to read the data from the temp table into a table that is already created.
Basically what I am trying to do is the following:
Cursor 1
select * from Temp where, State_Flag and National_Flag is not null
Insert into Siebel.S_PER_COMM_ADDR
set id = source var
set phone = chann_add var
If
wireless flag is not null
set method = 'Mobile"
else
set method = 'Home'
end if
If
Brand = 'r' and R_Flag is not null
set name flg1
set flag as 'T'
and so on.
I am getting confused as to where to call the variables:
set id = source var
set phone = chann_add var
I am also confused on how to do the sets and how to set the date for S_Flag and N_Flag.
One of the other issues is that I need to go and look at the base table to pick up anyone else that has the phone number and update or delete based on the data in the table.I am getting confused as to where to call the variables:
set id = source var
set phone = chann_add var have you defined your variables in the DECLARE area? is that a cursor variable or plain variable? need more info. -
Creating pl/sql procedure problems
Dear all,
I have problems with creating a procedure which select returns more then one row.
CREATE OR REPLACE PROCEDURE ECM_DATA.check_padrones_datos
IS
v_padron_check VARCHAR2(50);
v_padron_number VARCHAR2(50);
BEGIN
SELECT count(pd.estado)
INTO v_padron_check
FROM par6.padrones_datos pd, par6.padrones p, par6.FECHAS f
where pd.estado not in ('2000','8000')
AND PD.ARCHIVO = P.ARCHIVO
AND P.FECHA = F.datum_s;
DBMS_OUTPUT.PUT_LINE('Št. neuspešnih zapisov : ' || v_padron_check);
SELECT distinct pd.archivo
INTO v_padron_number
FROM par6.padrones_datos pd, par6.padrones p, par6.FECHAS f
where pd.estado not in ('2000','8000')
AND PD.ARCHIVO = P.ARCHIVO
AND P.FECHA = F.datum_s;
DBMS_OUTPUT.PUT_LINE('Padron št. : ' || v_padron_number);
EXCEPTION
WHEN NO_DATA_FOUND THEN
v_padron_number := 'Vsi padroni so OK';
DBMS_OUTPUT.PUT_LINE('Padron št. : ' || v_padron_number);
END;
Error -> -01422: exact fetch returns more than requested number of rows
Select returns 2 or more rows.
SELECT distinct pd.archivo
FROM par6.padrones_datos pd, par6.padrones p, par6.FECHAS f
where pd.estado not in ('2000','8000')
AND PD.ARCHIVO = P.ARCHIVO
AND P.FECHA = F.datum_s;
How to write correct syntax in pl/sql. I apologize in advance for rookie questions. Any help would be appreciated.
Regards,
RobertThe exact implementation depends on the use case.
You can loop through the results
FOR r IN (
SELECT DISTINCT pd.archivo
FROM par6.padrones_datos pd
,par6.padrones p
,par6.fechas f
WHERE pd.estado not in ('2000','8000')
AND pd.archivo = p.archivo
AND p.fecha = F.datum_s
LOOP
dbms_output.put_line('Padron št. : ' || r.archivo);
END LOOP;
Or maybe you can process all results in one step, e.g. if you want to update a table based on the select.
Regards
Marcus -
Problem while creating table dynamically using stored procedure
Hi all
When i try to execute the following lines get insufficient privilege error.
FYI: i m able to create table statically.(i.e without using stored procedure)
CREATE OR REPLACE PROCEDURE pcalling IS
str varchar2(60);
BEGIN
str:='create table t15(tno number,tname varchar2(5))';
execute immediate str;
END;
Thanks in advance
Satyahi
SQL> CREATE OR REPLACE PROCEDURE runddl (ddl_in in VARCHAR2)
2 AUTHID CURRENT_USER
3 IS
4 BEGIN
5 EXECUTE IMMEDIATE ddl_in;
6 END;
7 .
SQL> /
Procedure created.AUTHID CURRENT_USER clause before the IS keyword which runddl executes, it should run under the authority of the invoker, or current user not the authority of the definer.
if you omit it then it will no longer will be run if the creator doesnt have privelege to run this ddl regardless invoker has or not.
i hope you got it
Khurram Siddiqui
[email protected] -
Pointbase : How can I create a stored procedure with Pointbase database?
Hello,
Excuse me for my english, I'm not anglophone. I try to create a stored procedure.
This is my file SampleExternalMethods.java :
import java.sql.*; //import com.pointbase.jdbc.jdbcInOutDoubleWrapper; public class SampleExternalMethods { // A connection object to allow database callback static Connection conn = null; static Statement l_stmt; static Statement m_stmt; static CallableStatement m_callStmt = null; static ResultSet l_rs = null; public static void main(String[] args) { try { String url = "jdbc:pointbase:server://localhost/pointbaseDB"; String username = "PBPUBLIC"; String password = "PBPUBLIC"; conn = DriverManager.getConnection(url, username, password); doCreateProcedure(); doInvokeProcedure(); } catch (SQLException e) { e.printStackTrace(); } finally { if (m_stmt != null) { try { m_stmt.close(); } catch (Exception e) { e.printStackTrace(); } } if (m_callStmt != null) { try { m_callStmt.close(); } catch (Exception e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } public static void getCountry(String Iso_Code) { try { // Query the database for the country iso code l_stmt = conn.createStatement(); l_rs = l_stmt.executeQuery( "SELECT * FROM countries" + " WHERE country_iso_code ='" + Iso_Code + "'"); //Affichage du résultat de la requête l_rs.next(); System.out.print(l_rs.getString(1) + " - "); System.out.print(l_rs.getString(2) + " - "); System.out.println(l_rs.getString(3)); // Close the result set l_rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (l_rs != null) { try { l_rs.close(); } catch (Exception e) { e.printStackTrace(); } } if (l_stmt != null) { try { l_stmt.close(); } catch (Exception e) { e.printStackTrace(); } } } } public static void doCreateProcedure() throws SQLException { // SQL statement to create a stored procedure String SQL_CREATE_PROC = "CREATE PROCEDURE getCountry(IN P1 VARCHAR(30))" + " LANGUAGE JAVA" + " SPECIFIC getCountry" + " NO SQL" + " EXTERNAL NAME \"SampleExternalMethods::getCountry\"" + " PARAMETER STYLE SQL"; // Create a SQL statement m_stmt = conn.createStatement(); // Execute the SQL m_stmt.executeUpdate(SQL_CREATE_PROC); // Close the statement //m_stmt.close(); } public static void doInvokeProcedure() throws SQLException { // Create SQL to invoke stored procedures String SQL_USE_PROC = "{ call getCountry(?) }"; // Create a callable statement with three binding parameters m_callStmt = conn.prepareCall(SQL_USE_PROC); m_callStmt.setString(1, "CA"); m_callStmt.executeQuery(); // Close the callable statement //m_callStmt.close(); } }
Afterwards, I have read this note in a Pointbase document:
To invoke the dateConvert external Java method from a stored function, you must use the
CREATE FUNCTION statement. The dateConvert external Java method is called from the
class, SampleExternalMethods.
In order for the database to access this external Java method, the class SampleExternalMethods
must be included in the database CLASSPATH. For PointBase Embedded - Server Option, it
must be in the Server CLASSPATH, but not in the Client CLASSPATH.
If PointBase Server is run with the Java Security Manager, in the java policy file grant
’com.pointbase.sp.spPermission’ to the class that implements the external Java method.
An "spPermission" consists of a class name with no action. The class name is a name of a class
that could be used in creating a Stored Procedure in PointBase. The naming convention follows
the hierarchical property naming convention and that is supported by
"java.security.BasicPermission". An asterisk may appear by itself, or if immediately preceded
by ".", may appear at the end of the name, to signify a wildcard match. The name cannot
contain any white spaces.
I'm not sure, but I suppose that I must include the class SampleExternalMethods in a .jar file.
The database CLASSPATH could be : C:\Sun\AppServer\pointbase\lib\
These my files in this database CLASSPATH:
pbclient.jar
pbembedded.jar
pbtools.jar
pbupgrade.jar
I have tryed to include the class SampleExternalMethods in pbclient.jar and pbembedded.jar with this command:
jar -uf pbembedded.jar SampleExternalMethods
Afterwards I do that,
1) Start Pointbase
2) Configuration of classpath
set classpath=C:\Sun\AppServer\pointbase\lib\pbclient.jar
set classpath=%classpath%;D:\J2EE\Ch07Code\Ch07_06
I precise that my file SampleExternalMethods is into D:\J2EE\Ch07Code\Ch07_06\Ch07.
Then, I run the program:
D:\J2EE\Ch07Code\Ch07_06>java -Djdbc.drivers=com.pointbase.jdbc.jdbcUniversalDriver Ch07.SampleExternalMethods
But I have an error message:
Exception in thread "main" java.lang.NoClassDefFoundError: Ch07.SampleExternalMethods (wrong name: SampleExternalMethods)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.DefineClass(ClassLoader.java:539)
The problem, I suppose, comes from that the class SampleExternalMethods
must be included in the database CLASSPATH, but there is a pbserver.jar with pointbase normally, but I didn't find it. That's why I use pbembedded.jar or pbclient.jar in order to include the class SampleExternalMethods. May be I must start from C:\Sun\AppServer\pointbase\lib\ instead of D:\J2EE\Ch07Code\Ch07_06\Ch07?
Please, can somebody helps me?
Thank you in advance.
cagou!jschell wrote:
And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
>And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
>
And I doubt you can recurse like that for embedded java. You must have a class that does the functionality and another class that creates the proc.
Thank you for your response, I have done two classes:
SampleExternalMethods.java:
package Ch07;
import java.sql.*;*
*public class SampleExternalMethods*
*public static void getCountry(String Iso_Code)*
*// A connection object to allow database callback*
*Connection l_conn = null;*
*Statement l_stmt = null;*
*ResultSet l_rs = null;*
*try*
*String url = "jdbc:pointbase:server://localhost/pointbaseDB";*
*String username = "PBPUBLIC";*
*String password = "PBPUBLIC";*
*l_conn = DriverManager.getConnection(url, username, password);*
*// Query the database for the country iso code*
*l_stmt = l_conn.createStatement();*
*l_rs = l_stmt.executeQuery( "SELECT* FROM PBPUBLIC.COUNTRIES"
+" WHERE country_iso_code ='"+ Iso_Code +"'");+
+//Affichage du résultat de la requête+
+l_rs.next();+
+System.out.print(l_rs.getString(1)+ " - ");
System.out.print(l_rs.getString(2) +" - ");+
+System.out.println(l_rs.getString(3));+
+// Close the result set+
+l_rs.close();+
+} catch (SQLException e) {+
+e.printStackTrace();+
+} finally {+
+if (l_rs != null) {+
+try {+
+l_rs.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (l_stmt != null) {+
+try {+
+l_stmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (l_conn != null) {+
+try {+
+l_conn.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+}+
+}+
+}+
CreateMethods.java:
+package Ch07;+
+import java.sql.*;+
+public class CreateMethods+
+{+
+// A connection object to allow database callback+
+static Connection m_conn = null;+
+static Statement m_stmt;+
+static CallableStatement m_callStmt = null;+
+public static void main(String[] args)+
+{+
+try+
+{+
+String url = "jdbc:pointbase:server://localhost/pointbaseDB";+
+String username = "PBPUBLIC";+
+String password = "PBPUBLIC";+
+m_conn = DriverManager.getConnection(url, username, password);+
+doCreateProcedure();+
+doInvokeProcedure();+
+} catch (SQLException e) {+
+e.printStackTrace();+
+} finally {+
+if (m_stmt != null) {+
+try {+
+m_stmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (m_callStmt != null) {+
+try {+
+m_callStmt.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+if (m_conn != null) {+
+try {+
+m_conn.close();+
+} catch (Exception e) {+
+e.printStackTrace();+
+}+
+}+
+}+
+}+
+public static void doCreateProcedure() throws SQLException {+
+// SQL statement to create a stored procedure+
+String SQL_CREATE_PROC = "CREATE PROCEDURE PBPUBLIC.getCountry(IN P1 VARCHAR(30))"+
" LANGUAGE JAVA"
+" SPECIFIC getCountry"+
" NO SQL"
+" EXTERNAL NAME \"SampleExternalMethods::getCountry\""+
" PARAMETER STYLE SQL";
// Create a SQL statement
m_stmt = m_conn.createStatement();
// Execute the SQL
m_stmt.executeUpdate(SQL_CREATE_PROC);
// Close the statement
//m_stmt.close();
public static void doInvokeProcedure() throws SQLException {
// Create SQL to invoke stored procedures
String SQL_USE_PROC = "{ call getCountry(?) }";
// Create a callable statement with three binding parameters
m_callStmt = m_conn.prepareCall(SQL_USE_PROC);
m_callStmt.setString(2, "CA");
m_callStmt.executeQuery();
// Close the callable statement
//m_callStmt.close();
}But I have the same error message that previously.
I have read this note and I suppose that the problem is linked:
If PointBase Server is run with the Java Security Manager, in the java policy file grant
*com.pointbase.sp.spPermission to the class that implements the external Java method.*
An "spPermission" consists of a class name with no action. The class name is a name of a class
that could be used in creating a Stored Procedure in PointBase. The naming convention follows
the hierarchical property naming convention and that is supported by
*"java.security.BasicPermission". An asterisk may appear by itself, or if immediately preceded*
by ".", may appear at the end of the name, to signify a wildcard match. The name cannot
contain any white spaces.
Can you explain me what I must to do in order to solve this problem of spPermission.
Thanks. -
Can I create a Stored Procedure That access data from tables of another servers?
I'm developing a procedure and within it I'm trying to access another server and make a select into a table that belongs to this another server. When I compile this procedure I have this error message: " PLS-00904: insufficient privilege to access object BC.CADPAP", where BC.CADPAP is the problematic table.
How can I use more than one connection into an Oracle Stored Procedure?
How I can access tables of a server from a Stored Procedure since the moment I'm already connected with another server?
Can I create a Stored Procedure That access data from tables of another servers?You need to have a Database Link between two servers. Then you could do execute that statement without any problem. Try to create a database link with the help of
CREATE DATABASE LINK command. Refer Document for further details -
Problem in calling a stored procedure by passing few arguments.
Hi Friends,
I am converting a Purchase module which is developed in forms3. In that Copy PO is one page which uses to copy previously generated PO. Now I have a situation that coping a record of few tables into same tables by modifying few columns. First I need to display one table record in a page which is read only and same data have to be displayed in the same page which can be modify. Depending on the changes now i need to insert a new record into the table and remaining related table data should be copied as well. This should be done by using stored procedure.
while I trying this I am getting following error.
1. JBO-29000: Unexpected exception caught: oracle.jbo.JboException, msg=Error : java.sql.SQLException: ORA-06550: line 1, column 16: PLS-00201: identifier NUM must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
2. Error : java.sql.SQLException: ORA-06550: line 1, column 16: PLS-00201: identifier NUM must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
3. JBO-25009: Cannot create an object of type:java.lang.Number with value:79
Please Help me to solve this, I will be waiting for your valuable reply.(Email :[email protected])Probably problem is inside PL/SQL procedure. PLS-00201: identifier NUM must be declared indicates for this.
-
Problem with parameter of stored procedure....
HI,
I've this stored procedure:
CREATE OR REPLACE procedure ST_DAT (NAME_IN VARCHAR2) as
BEGIN
insert into REP_NAME
select COD_ID,DESCR_ID,AREA, NAME_IN, sysdate
from REP_TAB;
COMMIT;
END ST_DAT;
this procedure is called from an external program
It run correctly, but I have any problem when I tried to insert into tab REP_NAME one value of NAME_IN
with apostrophe.
for example if I write (from external program) Mary run correctly, but If I write Mary's Bar I get
this error:
ORA-01756: quoted string not properly terminated.
I tried with REPLACE:
insert into REP_NAME
select COD_ID,DESCR_ID,AREA, REPLACE(NAME_IN,'',''''), sysdate
from REP_TAB;
BUT I GET SAME ERROR:
How can I call this procedure with apostrophe?
Thanks in advance!You need to handle this in the calling program by escaping the apostophe with another apostrophe...
exec st_dat('Mary''s Bar')Of course that's easy to do when I'm typing in a literal. It's a bit trickier to automate :)
Cheers, APC -
Problem with nested select in procedure and order by
Hi,
I have this procedure:
CREATE OR REPLACE PROCEDURE Mkt_Flussi_Giornalieri2
( idGruppo IN VARCHAR2
, dataInizio IN DATE
, dataFine IN DATE
, startRow IN NUMBER
, endRow IN NUMBER
, column_order in varchar2
--, order_name in varchar2
, recordsetCursor OUT SYS_REFCURSOR
, countRow OUT NUMBER
) IS
order_clause varchar2(200) := ' ';
sql_stm varchar2(32000);
BEGIN
IF column_order IS NOT NULL
THEN
order_clause := column_order;
ELSE
order_clause := ' stato DESC ';
END IF;
dbms_output.put_line('clausola:'||order_clause);
sql_stm:='
SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, log_info FROM
(SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, log_info FROM
(SELECT
temp.flow_id AS idFlusso,
MKT_FLOW.flow_id || '' - '' || MKT_FLOW.flow_description || ''('' || temp.exec_seq || '')'' AS descrizioneFlusso,
TO_DATE(temp.date_id,''yyyymmddhh24miss'') AS dataRiferimento,
TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''dd/mm/yyyy'')||'' h. ''||TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''hh24:mi'') AS strDataRiferimento,
temp.status AS stato, temp.end_time AS dataElaborazione, DECODE(temp.status,3, ERROR_DESC, 1, TRACE_DES) AS ultimoMessaggio,
DECODE(temp.status,3, error_level, 1, fk_trace_level) AS livello,
Get_Group_Description(MKT_FLOW.flow_id) AS utentiRiferimento, temp.exec_seq AS exec_seq, mp.provider_description,
mp.provider_link, mfc.log_info
FROM (
SELECT v.*, tr.TRACE_ID, tr.TRACE_DES , tr.trace_date, tr.fk_trace_level, e.ERROR_ID, e.ERROR_CODE, NVL(e.ERROR_DESC, er.ERROR_DESC) AS ERROR_DESC, e.error_date, e.error_level,
MIN(e.error_id) OVER (PARTITION BY e.fk_exec_seq) eid,
MAX(tr.trace_id) OVER (PARTITION BY tr.fk_exec_seq) tid
FROM (
SELECT fc.*, MAX(exec_seq) OVER (PARTITION BY flow_id, flow_frequency, n_run, date_id) exsq
FROM mkt_flow_conf_view fc
WHERE TRUNC(end_time) >= :1
AND TRUNC(end_time) <= :2
) v, MKT_ERROR er, MKT_FLOW_ERROR e, MKT_FLOW_TRC tr
WHERE v.exec_seq = v.exsq
AND e.fk_exec_seq (+) = v.exec_seq
AND tr.fk_exec_seq (+) = v.exec_seq
AND er.error_id (+) = e.error_code
) temp
INNER JOIN MKT_FLOW
ON MKT_FLOW.flow_id = temp.flow_id AND MKT_FLOW.n_run = temp.n_run AND MKT_FLOW.flow_frequency = temp.flow_frequency
INNER JOIN MKT_FLOW_GROUP ON MKT_FLOW_GROUP.flow_id = MKT_FLOW.flow_id
LEFT OUTER JOIN
(SELECT DISTINCT flow_id, log_info
FROM mkt_flow_conf) mfc
ON mkt_flow.flow_id = mfc.flow_id
, mkt_provider mp
WHERE NVL(error_id, -1) = NVL(eid, -1)
AND NVL(trace_id, -1) = NVL(tid, -1)
AND MKT_FLOW_GROUP.group_id=:3
AND NVL (mkt_flow.fk_provider_id, '' '') =
NVL (mp.provider_id, '' '') )
WHERE ROWNUM <= :4
MINUS
(SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, log_info FROM
(SELECT
temp.flow_id AS idFlusso,
MKT_FLOW.flow_id || '' - '' || MKT_FLOW.flow_description || ''('' || temp.exec_seq || '')'' AS descrizioneFlusso,
TO_DATE(temp.date_id,''yyyymmddhh24miss'') AS dataRiferimento,
TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''dd/mm/yyyy'')||'' h. ''||TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''hh24:mi'') AS strDataRiferimento,
temp.status AS stato, temp.end_time AS dataElaborazione, DECODE(temp.status,3, ERROR_DESC, 1, TRACE_DES) AS ultimoMessaggio,
DECODE(temp.status,3, error_level, 1, fk_trace_level) AS livello,
Get_Group_Description(MKT_FLOW.flow_id) AS utentiRiferimento, temp.exec_seq AS exec_seq, mp.provider_description,
mp.provider_link, mfc.log_info
FROM (
SELECT v.*, tr.TRACE_ID, tr.TRACE_DES , tr.trace_date, tr.fk_trace_level, e.ERROR_ID, e.ERROR_CODE, NVL(e.ERROR_DESC, er.ERROR_DESC) AS ERROR_DESC, e.error_date, e.error_level,
MIN(e.error_id) OVER (PARTITION BY e.fk_exec_seq) eid,
MAX(tr.trace_id) OVER (PARTITION BY tr.fk_exec_seq) tid
FROM (
SELECT fc.*, MAX(exec_seq) OVER (PARTITION BY flow_id, flow_frequency, n_run, date_id) exsq
FROM mkt_flow_conf_view fc
WHERE TRUNC(end_time) >= :5
AND TRUNC(end_time) <= :6
) v, MKT_ERROR er, MKT_FLOW_ERROR e, MKT_FLOW_TRC tr
WHERE v.exec_seq = v.exsq
AND e.fk_exec_seq (+) = v.exec_seq
AND tr.fk_exec_seq (+) = v.exec_seq
AND er.error_id (+) = e.error_code
) temp
INNER JOIN MKT_FLOW
ON MKT_FLOW.flow_id = temp.flow_id AND MKT_FLOW.n_run = temp.n_run AND MKT_FLOW.flow_frequency = temp.flow_frequency
INNER JOIN MKT_FLOW_GROUP ON MKT_FLOW_GROUP.flow_id = MKT_FLOW.flow_id
LEFT OUTER JOIN
(SELECT DISTINCT flow_id, log_info
FROM mkt_flow_conf) mfc
ON mkt_flow.flow_id = mfc.flow_id
, mkt_provider mp
WHERE NVL(error_id, -1) = NVL(eid, -1)
AND NVL(trace_id, -1) = NVL(tid, -1)
AND MKT_FLOW_GROUP.group_id=:7
AND NVL (mkt_flow.fk_provider_id, '' '') =
NVL (mp.provider_id, '' '') )
WHERE ROWNUM <= :8
) ) ORDER BY :9 ' ;
dbms_output.enable(30000);
dbms_output.put_line(sql_stm);
OPEN recordsetCursor FOR sql_stm USING dataInizio, dataFine, idGruppo, endRow, dataInizio, dataFine, idGruppo, startRow, order_clause;
SELECT COUNT(*) INTO countRow FROM
(SELECT
temp.flow_id AS idFlusso,
MKT_FLOW.flow_id || ' - ' || MKT_FLOW.flow_description || '(' || temp.exec_seq || ')' AS descrizioneFlusso,
TO_DATE(temp.date_id,'yyyymmddhh24miss') AS dataRiferimento,
TO_CHAR(TO_DATE(temp.date_id,'yyyymmddhh24miss'),'dd/mm/yyyy')||' h. '||TO_CHAR(TO_DATE(temp.date_id,'yyyymmddhh24miss'),'hh24:mi') AS strDataRiferimento,
temp.status AS stato, temp.end_time AS dataElaborazione, DECODE(temp.status,3, ERROR_DESC, 1, TRACE_DES) AS ultimoMessaggio,
DECODE(temp.status,3, error_level, 1, fk_trace_level) AS livello,
Get_Group_Description(MKT_FLOW.flow_id) AS utentiRiferimento, temp.exec_seq AS exec_seq, mp.provider_description,
mp.provider_link, mfc.log_info
FROM (
SELECT v.*, tr.TRACE_ID, tr.TRACE_DES , tr.trace_date, tr.fk_trace_level, e.ERROR_ID, e.ERROR_CODE, NVL(e.ERROR_DESC, er.ERROR_DESC) AS ERROR_DESC, e.error_date, e.error_level,
MIN(e.error_id) OVER (PARTITION BY e.fk_exec_seq) eid,
MAX(tr.trace_id) OVER (PARTITION BY tr.fk_exec_seq) tid
FROM (
SELECT fc.*, MAX(exec_seq) OVER (PARTITION BY flow_id, flow_frequency, n_run, date_id) exsq
FROM mkt_flow_conf_view fc
WHERE TRUNC(end_time) >= dataInizio
AND TRUNC(end_time) <= dataFine
) v, MKT_ERROR er, MKT_FLOW_ERROR e, MKT_FLOW_TRC tr
WHERE v.exec_seq = v.exsq
AND e.fk_exec_seq (+) = v.exec_seq
AND tr.fk_exec_seq (+) = v.exec_seq
AND er.error_id (+) = e.error_code
) temp
INNER JOIN MKT_FLOW
ON MKT_FLOW.flow_id = temp.flow_id AND MKT_FLOW.n_run = temp.n_run AND MKT_FLOW.flow_frequency = temp.flow_frequency
INNER JOIN MKT_FLOW_GROUP ON MKT_FLOW_GROUP.flow_id = MKT_FLOW.flow_id
LEFT OUTER JOIN
(SELECT DISTINCT flow_id, log_info
FROM mkt_flow_conf) mfc
ON mkt_flow.flow_id = mfc.flow_id
, mkt_provider mp
WHERE NVL(error_id, -1) = NVL(eid, -1)
AND NVL(trace_id, -1) = NVL(tid, -1)
AND MKT_FLOW_GROUP.group_id=idGruppo
AND NVL (mkt_flow.fk_provider_id, ' ') =
NVL (mp.provider_id, ' '));
END Mkt_Flussi_Giornalieri2;
/When I call the procedure, from java, I receive this error:
>
Caused by: java.sql.SQLException: invalid column index
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:385)
at it.edison.markettracker.dao.spring.VistaFlussiGiornalieriDaoImpl.mapRow(VistaFlussiGiornalieriDaoImpl.java:155)
at it.edison.markettracker.dao.spring.VistaFlussiGiornalieriDaoImpl.mapRow(VistaFlussiGiornalieriDaoImpl.java:1)
at org.springframework.jdbc.core.RowMapperResultSetExtractor.extractData(RowMapperResultSetExtractor.java:92)
at org.springframework.jdbc.core.JdbcTemplate.processResultSet(JdbcTemplate.java:1124)
at org.springframework.jdbc.core.JdbcTemplate.extractOutputParameters(JdbcTemplate.java:1085)
at org.springframework.jdbc.core.JdbcTemplate$5.doInCallableStatement(JdbcTemplate.java:997)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:936)
... 26 more
When I call the procedure from toad in this way:
SET serveroutput ON
DECLARE
TROVATI SYS_REFCURSOR;
NUMERO_TROVATI NUMBER;
BEGIN
DBMS_OUTPUT.ENABLE(30000);
dbms_output.put_line('INIZIO');
Mkt_Flussi_Giornalieri2(1, trunc(sysdate), trunc(sysdate), 100, 50, null, TROVATI, NUMERO_TROVATI);
dbms_output.put_line('RECORD TROVATI:'||NUMERO_TROVATI);
END; I don't receive any error messages but I don't see any message.
Why this behaviour? I work on this procedure from the last monday. Please help me. I need to call the procedure from java.
Thanks, bye bye.
Edited by: Abdujaparov on Mar 5, 2009 3:44 PMHi,
I have solved the problem, I forgot a parameter in the select, so java tells the an error. But now I have another problem. The procedure doesn't execute the order by. I pass the couple column_name order_type in a string as ("provider_description desc") dinamically but the procedure doesn't execute the ordering. Why?
The problem is in the dynamic query, I think:
sql_stm:='
SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, provider_link, log_info FROM
(SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, provider_link, log_info FROM
(SELECT
temp.flow_id AS idFlusso,
MKT_FLOW.flow_id || '' - '' || MKT_FLOW.flow_description || ''('' || temp.exec_seq || '')'' AS descrizioneFlusso,
TO_DATE(temp.date_id,''yyyymmddhh24miss'') AS dataRiferimento,
TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''dd/mm/yyyy'')||'' h. ''||TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''hh24:mi'') AS strDataRiferimento,
temp.status AS stato, temp.end_time AS dataElaborazione, DECODE(temp.status,3, ERROR_DESC, 1, TRACE_DES) AS ultimoMessaggio,
DECODE(temp.status,3, error_level, 1, fk_trace_level) AS livello,
Get_Group_Description(MKT_FLOW.flow_id) AS utentiRiferimento, temp.exec_seq AS exec_seq, mp.provider_description,
mp.provider_link, mfc.log_info
FROM (
SELECT v.*, tr.TRACE_ID, tr.TRACE_DES , tr.trace_date, tr.fk_trace_level, e.ERROR_ID, e.ERROR_CODE, NVL(e.ERROR_DESC, er.ERROR_DESC) AS ERROR_DESC, e.error_date, e.error_level,
MIN(e.error_id) OVER (PARTITION BY e.fk_exec_seq) eid,
MAX(tr.trace_id) OVER (PARTITION BY tr.fk_exec_seq) tid
FROM (
SELECT fc.*, MAX(exec_seq) OVER (PARTITION BY flow_id, flow_frequency, n_run, date_id) exsq
FROM mkt_flow_conf_view fc
WHERE TRUNC(end_time) >= :1
AND TRUNC(end_time) <= :2
) v, MKT_ERROR er, MKT_FLOW_ERROR e, MKT_FLOW_TRC tr
WHERE v.exec_seq = v.exsq
AND e.fk_exec_seq (+) = v.exec_seq
AND tr.fk_exec_seq (+) = v.exec_seq
AND er.error_id (+) = e.error_code
) temp
INNER JOIN MKT_FLOW
ON MKT_FLOW.flow_id = temp.flow_id AND MKT_FLOW.n_run = temp.n_run AND MKT_FLOW.flow_frequency = temp.flow_frequency
INNER JOIN MKT_FLOW_GROUP ON MKT_FLOW_GROUP.flow_id = MKT_FLOW.flow_id
LEFT OUTER JOIN
(SELECT DISTINCT flow_id, log_info
FROM mkt_flow_conf) mfc
ON mkt_flow.flow_id = mfc.flow_id
, mkt_provider mp
WHERE NVL(error_id, -1) = NVL(eid, -1)
AND NVL(trace_id, -1) = NVL(tid, -1)
AND MKT_FLOW_GROUP.group_id=:3
AND NVL (mkt_flow.fk_provider_id, '' '') =
NVL (mp.provider_id, '' '') )
WHERE ROWNUM <= :4
MINUS
(SELECT idflusso, descrizioneFlusso, dataRiferimento, strDataRiferimento,
stato, dataElaborazione, ultimoMessaggio, livello, utentiRiferimento,
exec_seq, provider_description, provider_link, log_info FROM
(SELECT
temp.flow_id AS idFlusso,
MKT_FLOW.flow_id || '' - '' || MKT_FLOW.flow_description || ''('' || temp.exec_seq || '')'' AS descrizioneFlusso,
TO_DATE(temp.date_id,''yyyymmddhh24miss'') AS dataRiferimento,
TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''dd/mm/yyyy'')||'' h. ''||TO_CHAR(TO_DATE(temp.date_id,''yyyymmddhh24miss''),''hh24:mi'') AS strDataRiferimento,
temp.status AS stato, temp.end_time AS dataElaborazione, DECODE(temp.status,3, ERROR_DESC, 1, TRACE_DES) AS ultimoMessaggio,
DECODE(temp.status,3, error_level, 1, fk_trace_level) AS livello,
Get_Group_Description(MKT_FLOW.flow_id) AS utentiRiferimento, temp.exec_seq AS exec_seq, mp.provider_description,
mp.provider_link, mfc.log_info
FROM (
SELECT v.*, tr.TRACE_ID, tr.TRACE_DES , tr.trace_date, tr.fk_trace_level, e.ERROR_ID, e.ERROR_CODE, NVL(e.ERROR_DESC, er.ERROR_DESC) AS ERROR_DESC, e.error_date, e.error_level,
MIN(e.error_id) OVER (PARTITION BY e.fk_exec_seq) eid,
MAX(tr.trace_id) OVER (PARTITION BY tr.fk_exec_seq) tid
FROM (
SELECT fc.*, MAX(exec_seq) OVER (PARTITION BY flow_id, flow_frequency, n_run, date_id) exsq
FROM mkt_flow_conf_view fc
WHERE TRUNC(end_time) >= :5
AND TRUNC(end_time) <= :6
) v, MKT_ERROR er, MKT_FLOW_ERROR e, MKT_FLOW_TRC tr
WHERE v.exec_seq = v.exsq
AND e.fk_exec_seq (+) = v.exec_seq
AND tr.fk_exec_seq (+) = v.exec_seq
AND er.error_id (+) = e.error_code
) temp
INNER JOIN MKT_FLOW
ON MKT_FLOW.flow_id = temp.flow_id AND MKT_FLOW.n_run = temp.n_run AND MKT_FLOW.flow_frequency = temp.flow_frequency
INNER JOIN MKT_FLOW_GROUP ON MKT_FLOW_GROUP.flow_id = MKT_FLOW.flow_id
LEFT OUTER JOIN
(SELECT DISTINCT flow_id, log_info
FROM mkt_flow_conf) mfc
ON mkt_flow.flow_id = mfc.flow_id
, mkt_provider mp
WHERE NVL(error_id, -1) = NVL(eid, -1)
AND NVL(trace_id, -1) = NVL(tid, -1)
AND MKT_FLOW_GROUP.group_id=:7
AND NVL (mkt_flow.fk_provider_id, '' '') =
NVL (mp.provider_id, '' '') )
WHERE ROWNUM <= :8
) ) ORDER BY :9' ;
OPEN recordsetCursor FOR sql_stm USING dataInizio, dataFine, idGruppo, endRow, dataInizio, dataFine, idGruppo, startRow, order_clause;Where order_clause is defined so:
IF column_order IS NOT NULL
THEN
order_clause := column_order;
ELSE
order_clause := ' stato DESC ';
END IF;If I insert manually a name of a column and a type of ordering (asc or desc) the ordering is executed correctly. How can I solve this issue?
Thanks, bye bye. -
How to create report using Procedure.
Hi All,
I want to create report in apex.But i do not have sql code.I have one procedure.Is it possible to create report using this procedure in apex.
CREATE OR REPLACE PROCEDURE headcsv_prc2
AS
CURSOR cr_header
IS
SELECT ood.organization_code, fm.formula_no AS "FORMULA_NAME",
fm.formula_vers AS "FORMULA_VERSION",
fm.formula_desc1 AS "FORMULA_DESC",
DECODE (fm.formula_status,
100, 'New',
400, 'Approve for Laboratory Use',
700, 'Approve for General',
800, 'On Hold',
900, 'Frozen',
1000, 'Obsolete/Archived'
) AS "FORMULA_STATUS",
DECODE (fd.line_type, '1', msib.segment1) product,
DECODE (fd.line_type, '-1', msib.segment1) ingrediant,
DECODE (fd.line_type, '2', msib.segment1) AS "BY_PRODUCT",
DECODE (by_product_type,
'W', 'Waste',
'R', 'Rework',
'Y', 'Yield',
'S', 'Sample',
NULL
) AS "BY_PRODUCT_TYPE"
FROM org_organization_definitions ood,
fm_form_mst fm,
fm_matl_dtl fd,
mtl_system_items_b msib
WHERE ood.organization_id = fm.owner_organization_id
AND fm.owner_organization_id = msib.organization_id
AND msib.organization_id = fd.organization_id
AND fd.organization_id = ood.organization_id
AND fm.formula_id = fd.formula_id
AND msib.inventory_item_id = fd.inventory_item_id
-- and fm.FORMULA_NO like'%TEA%'
AND fd.line_type IN ('1', '2', '-1')
GROUP BY ood.organization_code,
fm.formula_no,
fm.formula_vers,
fm.formula_desc1,
fm.formula_status,
fd.line_type,
msib.segment1,
by_product_type
ORDER BY fm.formula_no, fm.formula_vers;
BEGIN
DBMS_OUTPUT.put_line ( INITCAP ('ORGANIZATION CODE')
|| ','
|| INITCAP ('FORMULA NAME')
|| ','
|| INITCAP ('FORMULA VERSION')
|| ','
|| INITCAP ('FORMULA DESC')
|| ','
|| INITCAP ('FORMULA STATUS')
|| ','
|| INITCAP ('PRODUCT')
|| ','
|| INITCAP ('INGREDIANT')
|| ','
|| INITCAP ('BY PRODUCT')
|| ','
|| INITCAP ('BY PRODUCT TYPE')
FOR ch IN cr_header
LOOP
DBMS_OUTPUT.put_line ( ch.organization_code
|| ','
|| ch.formula_name
|| ','
|| ch.formula_version
|| ','
|| '"'
|| ch.formula_desc
|| '"'
|| ','
|| ch.formula_status
|| ','
|| ch.product
|| ','
|| ch.ingrediant
|| ','
|| ch.by_product
|| ','
|| ch.by_product_type
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Error No: ' || SQLCODE || 'Error Msg: '
|| SQLERRM
END;
EXEC HeadCSV_Prc2
Thanks,
RaghuRaghuVarma wrote:
I created one report using sql code.(Ex: select * from emp).
But my higher authorities want that for security purpose They will change the code into java.
What "higher authorities"? What "security purpose"?
In this process they changed my code as a procedure.Finally they give that java code.they tell to me please fix in apex.
Do these "higher authorities" know anything about APEX? What does the Java code actually do? Have you asked them how their approach is to be integrated into APEX?
There is no reason why a properly written Java stored program cannot be used in APEX, provided that whatever it is doing makes sense in an APEX/web context, and isn't some nonsense like using DBMS_OUTPUT to generate a CSV.
I tried so many ways.But it is not fixed.Different Different errors will occurs.
Tried what? Demonstrate what you have tried, preferably using examples on apex.oracle.com.
How to solve this.
How to solve what? No clearly defined problem or requirement has been identified.
Describe the the problem/requirement (not your attempted solutions) in detail.
How to ask questions
Re: 2. How do I ask a question on the forums?
Include as much relevant information with your question as possible, starting with:
APEX version
DB version, edition and host OS
Web server architecture (EPG, OHS or APEX listener), platform, and host OS
Browser(s)/version(s) used
Theme
Templates
Region type(s) -
Problem while using oracle stored procedure in VC
Hi All,
I have created JDBC system and connected my locally installed Oracle data base to the VC. I mapped the data base user to my VC user. I tested connection and it is fine. Further I see the DB alias in Visual Composer and I can drop stored procedures to my story board. I can define parameters, but when I am executing procedures I get the error message.
Problem: I can not execute stored procedures stored in Oracle data base. Error Message: Portal request failed. Could not execute stored procedure.
In the stored procedure, I have used select query, that returns set of records, so that I have used REF CURSOR as OUT Parameter. Is REF CURSOR supported by VC?. Else, any tricks available to solve this problem?.
Note: Stored Procedure of Sql server is working fine in VC.
Thanks,
Venkatesh RReturning (or sending in) multiple rows directly from (or to) a stored procedure is not currently possible. I have been in contact with SAP on this subject earlier, and they suggest using a web service to do the job. I used this as a work around, calling the stored procedure from a web service. I send in VC tables to this web service, and this in turn contacts my stored procedure.
The problem is related to the connector framework in the J2EE environment.
I am on 7.0 sps 17
If you use stored procedure single value parameters of type varchar, number ... then VC has no problem communicating with your procedures.
Good luck
Henning Strand -
Problem accessing float in stored procedures
I wrote a stored procedure that updates a column in a table whose datatype is of float(126). I declared a global variable in the stored procedure. The value of this variable is computed in the stored procedure and is used to update the table. My problem is an error message denoting my variable declaration to be at fault keeps on showing up even if I tried different datatypes in my declaration. I've tried RANK NUMBER, RANK NUMBER(19),
RANK FLOAT(126) even RANK NUMBER(2,2). Can anyone help?Albert,
I don't know what you mean by a "global" variable in a stored procedure. Is this a java stored procedure, or is it a PL/SQL stored procedure? If it is PL/SQL, perhaps the PL/SQL forum would be more appropriate?
For your information, the following (PL/SQL) stored procedure works fine for me on a Oracle 9.2.0.4 database:
create or replace procedure avi as
fv float(126);
begin
fv := 1.7;
dbms_output.put_line(to_char(fv));
end;Perhaps you would care to provide some more information?
[But I'm not guaranteeing that I will be able to resolve your issue, if you do.]
What database version are you using?
Is this a java stored procedure?
Please post the entire error message (and stack trace?) you are getting.
Please post the code that is causing the error. [Enough code so that I can try and reproduce your situation on my computer.]
Good Luck,
Avi.
Maybe you are looking for
-
someone changed my ipod password, its four digit long, and i have no idea what it is. i can still acess my music, and it shows that i am connected to my wi fi in my home, but it will not connect to anything on the internet. it will not even reset. it
-
How can I autorun a script that will process an XML file on open?
I am using Frame 11. I have a registered script that looks for event notification Constants.FA_Note_PostOpenXML. When this event fires, the script is supposed to examine the root element (so I only edit appropriate XML files), then make some edits to
-
Indesign cs5.5 server (service) giving error while including .indd document
Hi all, When I try to include the .indd document in book and try to genarate pdf using indesign cs5.5 server sevice it gives following error: ( note : but when i am using command line(.bat ) file it is including .indd document without locking) Err
-
My pc on windows vista can not install driver for my Iphone 4s on 6.0.1
I can do everything in itunes but the windows driver can not be installed.
-
Transport tablespaces between databases with different character sets
Hi everyone: I have two 10R2 databases on the same hp-ux 64bit server, 1st one with NLS_CHARACTERSET=US7ASCII, 2nd one with NLS_CHARACTERSET=AL32UTF8. NLS_NCHAR_CHARACTERSET on both databases is AL16UTF16. Can I transfer tablespaces from the 1st one