Date arithmetic gives error PLS-00306
Hi allSQL> select*from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Here is my code: 1 declare
2 v_date_time timestamp;
3 v_dod date;
4 begin
5 v_date_time:=to_date('11:20','HH12:MI AM');
6 dbms_output.put_line('v_date_time ='||v_date_time);
7 v_dod:=sysdate+v_date_time;
8 dbms_output.put_line('v_dod ='||v_dod);
9 exception when others then
10 dbms_output.put_line('Error is'||sqlerrm);
11* end;
SQL> /
v_dod:=sysdate+v_date_time;
*
ERROR at line 7:
ORA-06550: line 7, column 8:
PLS-00306: wrong number or types of arguments in call to '+'
ORA-06550: line 7, column 1:
PL/SQL: Statement ignored
/
How to add time with the minutes with sysdate otherwise...Please help me.
And even using the arithmetic of the dates that uses the day as unit of measure (so 1 / 24 is an hour and a 1 / 24 / 60 is one minute):
select trunc(sysdate) + 11 / 24 + 20 /24 / 60 eleven_twenty_am_today
from dual
/
ELEVEN_TWENTY_AM_TO
-------------------
11/18/2012 11:20:00
SQL>
And:
select sysdate current_time,
sysdate + 11 / 24 + 20 /24 / 60 current_time_plus_11_20
from dual
/
select sysdate current_time,
sysdate + 11 / 24 + 20 /24 / 60 current_time_plus_11_20
from dual
/
SY.
Tags: Database
Similar Questions
-
Date arithmetic gives error in dynamic Action that makes the value value
Hello
I am trying to create a dynamic action that automatically assigns the value of P8_ENDTIME to P8_STARTTIME + 30 minutes. Both are date variables.
So far, my settings
Dynamic action:
Event: change
Selection type: elements
Items: P8_STARTTIME
Scope of the event: static
Real Action:
Action: Set
Set type: PL/SQL Expression
PL/SQL expression: P8_STARTTIME + 1/48
Page items to submit: P8_STARTTIME
Affected elements Type: elements
Assigned items: P8_ENDTIME
Note: I read online by adding 1 to a date increments of one day. And the addition of 1/24 Add 1 hour. 1/48 will add a half an hour.
These settings compile but when I change the STARTTIME field for a new date on my page it says:
AJAX call back Server error ORA-06502: PL/SQL: digital or value error: character number conversion error to set the value.
I have to mention if I did my right PL/SQL expression: P8_STARTTIME then no error is thrown. : P8_ENDTIME be successfully will set the value of: P8_STARTTIME
Your help is very appreciated.
Item is string. not of type datetime. You must first fills in /date datetime type and then add 30 min. After that, maybe you must convert to a string.
-
Please help solve the problem error: PLS-00306: wrong number or types of a
Hello
Please see my statement of types and the procedure. Object and the nested table that is declared at the schema level
I'm using the oracle version 11.2
Error: PLS-00306: wrong number or types of arguments in the call to 'SET '.CREATE OR REPLACE TYPE T_COPY_EVNT_DTL IS OBJECT ( eventId varchar2(100), eventDescription varchar2(100), promoMonthDescription varchar2(100), promoStartDate varchar2(100), promoEndDate varchar2(100), PROMOCOSTSTARTDATE varchar2(100) ); CREATE OR REPLACE TYPE T_EVENT_TABLE IS TABLE OF T_COPY_EVNT_DTL; create or replace PROCEDURE Pr_Event_Details_new(ip_xml CLOB, op_sections_xml OUT XMLTYPE) AS event_list t_copy_evnt_dtl; event_data_sec t_event_table := t_event_table(); CURSOR get_event_cur IS SELECT cast(collect(t_copy_evnt_dtl(evnt.event, evnt.event_desc, mth.promo_month_desc, TO_CHAR(evnt.start_date, 'DD/MM/YYYY'), TO_CHAR(evnt.end_date, 'DD/MM/YYYY'), TO_CHAR((evnt.start_date - 21), 'DD/MM/YYYY'))) as t_event_table) FROM RETEK_PROMO_EVENT_MST evnt INNER JOIN ..... WHERE ... ORDER BY evnt.event_desc, mth.promo_month_desc, dtl.promo_start_date, dtl.promo_end_date, dtl.promo_cost_start_date; type get_event_tab is table of get_event_cur%rowtype index by Binary_Integer; l_get_event_tab get_event_tab; BEGIN .... OPEN get_event_cur; fetch get_event_cur into event_data_sec; event_data_sec := set(event_data_sec); ... EXCEPTION --log_errors... Raise; END Pr_Event_Details_new;
Online: 117
Text: event_data_sec: = set (event_data_sec);
Error: PL/SQL: statement ignored
Online: 117
Text: event_data_sec: = set (event_data_sec);You will raise a wrong number or types of argument error, or an exception of PLS-00306, if you use the fixed operator with the collection of user-defined object types.
The collection must contain SQL scalar data types - single values without internal components...
Numeric values, on which you can perform arithmetic operations.
Alphanumeric values that represent individual or strings of characters, characters that you can manipulate.
Logical values, on which you can perform logical operations.
Dates and times, you can manipulate.
Time intervals, you can handle.Published by: stefan nebesnak on January 24, 2013 13:22
-
Convert number to Varchar for printing the Type of table in a loop error: PLS-00306:
Hello
I am trying to print a number of the Table that I get from a ref cursor But cannot convert the number to Varchar to print. What I'm doing wrong here
Thank you
Ken
OUT_REFCURSOR FETCH BULK COLLECT INTO theTBL_RCRD_ID ;
So THAT (theTBL_RCRD_ID IS NOT NULL)
LOOP
strRCRDID: = TO_CHAR (onTBL_RCRD_ID (indx), "99999"); -This line throws error message
dbms_output.put_line (strRCRDID);
INDX: = indx + 1;
END LOOP;
- Error: PLS-00306: wrong number or types of arguments in the call to "TO_CHAR.
Try this...
strRCRDID: = TO_CHAR (outTBL_RCRD_ID (indx). RCRD_ID, "99999");
-
Error PLS-00306 with stored procedure
I am trying to create a simple package and store the procedure to remove the date of treatment for Crystal Reports can read all data. I used an example on the web site for Crystal report as reference in SAP: link: [http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1084c536-711e-2b10-e48a-924a60745253;jsessionid= (J2EE3417200) ID0966300750DB00193623365600119940End]
I ran the following and receive PLS-00306: wrong number or type of argument on the stored procedure. I am also pulling data with a databaselink to another data base given that our third-party vendor will not connect directly to the main database.
I am new to PL/SQL, so I don't know what else to solve problems. Thank you for taking the time to review this.
-1. Create a temporary table
CREATE TEMPORARY TABLE global test_temp
(processdate DATE NOT NULL);
-2.Create package w / require REF CURSOR for Crystal reports
CREATE or REPLACE PACKAGE test_package
IN the TYPE processdate_TYPE IS REF CURSOR
RETURN test_temp % ROWTYPE;
END test_package;
/
-3. Stored procedure
CREATE OR REPLACE PROCEDURE test_Procedure
(processdate_cursor IN OUT test_Package.processdate_TYPE,
processdate_parameter IN test_temp.processdate%TYPE)
AS
processdate DATE;
BEGIN
OPEN FOR Processdate_cursor
SELECT processdate
OF processlog@WEATEST
WHERE processname = "F_ExecuteScheduleProcess" and processtype = ';
END test_Procedure;
/You say that you do not understand where there is a wrong number or type?
This error occurs because there is an incorrect number of parameters passed. Your procedure
Test_SP expects 3 parameters as defined by you as follows
(p_ID in number,
p_firstname OUT varchar2,
p_lastname OUT varchar2)But when you run, you're not not p_id, has not managed to p_firstname, has failed to p_lastname. So there are number of parameters and that's what suggests the error.
To run your test_sp
Declare
sFirstName Test_Table.FirstName%Type;
sLastName Test_Table.Lastname%Type;
Nest Test_Table.ID%Type: = 1;
Begin
Test_SP(1,sFirstName,sLastName);
End;I hope this helps.
-
PL / SQL: statement ignored
PLS-00306: wrong number of arguments in the call types
to "INCLUDE".
WHY?
(PROCEEDINGS) include
p_id_frota_cliente IN OUT frota_cliente.id_frota_cliente%TYPE,
p_id_cliente IN frota_cliente.id_cliente%TYPE,
p_limite_mensal IN frota_cliente.limite_mensal%TYPE,
p_limite_trans IN frota_cliente.limite_trans%TYPE,
p_qtd_max_litros IN frota_cliente.qtd_max_litros%TYPE,
p_valor_max IN frota_cliente.valor_max%TYPE,
p_ver_agenda_condutor IN frota_cliente.ver_agenda_condutor%TYPE,
p_ver_km IN frota_cliente.ver_km%TYPE,
p_ver_valor_max IN frota_cliente.ver_valor_max%TYPE,
p_diaval_carta_credito IN frota_cliente.diaval_carta_credito%TYPE
);
IN ANY OTHER PROCEDURE, TO CALL THE PROCEDURE ABOVE:
include (p_id_cliente = > p_id_empresa);Because you do not have a variable to contain your setting IN OUT (p_id_frota_cliente IN OUT frota_cliente.id_frota_cliente%TYPE).
Also, in the decree for the parameters to be considered in option (OUT or in OUT parameters can be optional) you can use the default clause to specify a value when it has failed.
For example:SQL> create or replace procedure test (p1 in varchar2, 2 p2 in varchar2) 3 is 4 begin 5 null; 6 end test; 7 / Procedure created. SQL> SQL> begin 2 test(p1 => 'hi'); 3 end; 4 / test(p1 => 'hi'); * ERROR at line 2: ORA-06550: line 2, column 3: PLS-00306: wrong number or types of arguments in call to 'TEST' ORA-06550: line 2, column 3: PL/SQL: Statement ignored SQL> SQL> create or replace procedure test (p1 in varchar2, 2 p2 in varchar2 default null) 3 is 4 begin 5 null; 6 end test; 7 / Procedure created. SQL> SQL> begin 2 test(p1 => 'hi'); 3 end; 4 / PL/SQL procedure successfully completed.
-
Error: PLS-00306: wrong number or types of arguments
Hello
I created a function:
create or replace procedure AS Test11
x Test.Emp_No%Type;
Begin
Select emp_no in x from Test whose name = 'South '.
x: = x + 1;
Update Test set emp_no = x where emp_no < 100;
commit;
end Test11;
It has compiled with success in PL/SQL Developer. Now, I created an executable of this procedure in front-end - 11i. And then I created a program of this executable. Then I added this program to a group of application.
Now that I run this query and I get this error in the log:
Error ORACLE 6550 in FDPSTP
Cause: FDPSTP failed due to the ORA-06550: line 1, column 7:
PLS-00306: wrong number or types of arguments in the call to 'TEST11 '.
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
.Hello
Whenever you save a function, or a PL/SQL procedure as a simultaneous program to apps, you must
to add two parameters of type varchar2 (errbuf and retcode) Moreover to your settings.
If you change procedure as follows:create or replace procedure Test11(errbuf out varchar2, retcode out varchar2) AS x Test.Emp_No%Type; Begin select emp_no into x from Test where name = 'Sud'; x := x + 1; update Test set emp_no = x where emp_no < 100; commit; end Test11;
Published by: Anthony Alix on December 3, 2008 05:20
Published by: Anthony Alix on December 3, 2008 05:25
Published by: Anthony Alix on December 3, 2008 05:35
-
PLS-00306 with DBMS_METADATA_DIFF
Oracle Database 11 g Enterprise Edition Release 11.2.0.3.0 - 64 bit Production
Hello
I try to use the package DBMS_METADATA_DIFF (http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_metadiff.htm#ARPLS66923) to find out whether two schema objects are the same or not.I want to check that OUT parameters 'diffs' domestic FETCH_CLOB can answer this question, but the following code gives me error PLS-00306: wrong number or types of arguments in the call to 'FETCH_CLOB' and I can't understand what I'm doing wrong here.
'Doc' FETCH_CLOB procedure is specified as "IN OUT NOCOPY CLOB", not requiring special attention?
Anyone?
CREATE TABLE T1 (X_ID NUMBER, X_NAME VARCHAR2(100)); CREATE TABLE T2 (X_ID NUMBER, X_NAME VARCHAR2(100)); DECLARE l_table_1 varchar2(30) := 'T1'; l_table_2 varchar2(30) := 'T2'; l_comp_handle number; l_sxml_1 clob; l_sxml_2 clob; l_doc clob; l_diffs boolean; BEGIN l_comp_handle := DBMS_METADATA_DIFF.OPENC (object_type => 'TABLE'); l_sxml_1 := DBMS_METADATA.GET_SXML (object_type => 'TABLE', name => l_table_1, schema => user); l_sxml_2 := DBMS_METADATA.GET_SXML (object_type => 'TABLE', name => l_table_2, schema => user); DBMS_METADATA_DIFF.ADD_DOCUMENT (handle => l_comp_handle, document => l_sxml_1); DBMS_METADATA_DIFF.ADD_DOCUMENT (handle => l_comp_handle, document => l_sxml_2); LOOP DBMS_LOB.CREATETEMPORARY(l_doc, TRUE ); DBMS_METADATA_DIFF.FETCH_CLOB(handle => l_comp_handle, doc => l_doc, diffs => l_diffs); EXIT WHEN l_doc IS NULL; DBMS_LOB.FREETEMPORARY(l_doc); END LOOP; DBMS_METADATA_DIFF.CLOSE(handle => l_comp_handle); IF l_diffs THEN DBMS_OUTPUT.PUT_LINE ('Tables are not equal'); ELSE DBMS_OUTPUT.PUT_LINE ('Tables are equal'); END IF; EXCEPTION WHEN OTHERS THEN DBMS_LOB.FREETEMPORARY(l_doc); DBMS_METADATA_DIFF.CLOSE(handle => l_comp_handle); END; /
Let's not documentation.
In SQL * Plus, do a 'desc' dbms_metadata_diff and you will see that the real parameters of dbms_metadata_diff.fetch_clob are called "handle," "xmldoc", and "diffs."
It works (which is good, it runs - he's apparently an infinite loop):
DECLARE l_table_1 varchar2(30) := 'T1'; l_table_2 varchar2(30) := 'T2'; l_comp_handle number; l_sxml_1 clob; l_sxml_2 clob; l_doc clob; l_diffs boolean; BEGIN l_comp_handle := DBMS_METADATA_DIFF.OPENC (object_type => 'TABLE'); l_sxml_1 := DBMS_METADATA.GET_SXML (object_type => 'TABLE', name => l_table_1, schema => user); l_sxml_2 := DBMS_METADATA.GET_SXML (object_type => 'TABLE', name => l_table_2, schema => user); DBMS_METADATA_DIFF.ADD_DOCUMENT (handle => l_comp_handle, document => l_sxml_1); DBMS_METADATA_DIFF.ADD_DOCUMENT (handle => l_comp_handle, document => l_sxml_2); LOOP DBMS_LOB.CREATETEMPORARY(l_doc, TRUE ); DBMS_METADATA_DIFF.FETCH_CLOB(handle => l_comp_handle, xmldoc => l_doc, diffs => l_diffs); EXIT WHEN l_doc IS NULL; DBMS_LOB.FREETEMPORARY(l_doc); END LOOP; DBMS_METADATA_DIFF.CLOSE(handle => l_comp_handle); IF l_diffs THEN DBMS_OUTPUT.PUT_LINE ('Tables are not equal'); ELSE DBMS_OUTPUT.PUT_LINE ('Tables are equal'); END IF; EXCEPTION WHEN OTHERS THEN DBMS_LOB.FREETEMPORARY(l_doc); DBMS_METADATA_DIFF.CLOSE(handle => l_comp_handle); END; /
Once I removed the loop and it ran, it reports always tables are different - similar to this is because the names are different.
Edit: Here is a much simpler way:
SQL> ed Wrote file afiedt.buf 1 begin 2 dbms_output.put_line(dbms_metadata_diff.compare_alter('TABLE', 'T1', 'T2')); 3* end; SQL> / ALTER TABLE "HR"."T1" RENAME TO "T2" PL/SQL procedure successfully completed.
-
Can't get the procedure to update - PLS - 00306:Wrong number or types of arguments
I'm in a situation where I think that despite the correct number of parameters by the way my local procedure (which has been "forward declarations" in addition to logical writing for her; I use all this in a package) fails to compile in SQL * faster due to the error PLS - 00306:Wrong number or types of arguments in the call to P_SENDMAIL.
I'm passing 5 parameters in the area of forward declarations and also in the logic/header inside in addition to calling the procedure in the package. Can one of you help mewith this and tell me where exactly the error might be. Here is the code:
[code]
-Local variable
CRLF VARCHAR2 (2) CONSTANT: = CHR (13) | CHR (10);
-- --------------------------------------------------------------------------------
-FORWARD DECLARATIONS
-- -----------------------------------------------------------------------------
PROCEDURE p_sendmail (p_sender_email IN VARCHAR2,
P_FROM IN VARCHAR2,
p_to IN VARCHAR2,
msg_subject IN VARCHAR2 DEFAULT NULL,
p_msg_body IN LONG DEFAULT NULL);
[/ code]
The procedure itself:
[code]
PROCEDURE p_sendmail (p_sender_email IN VARCHAR2,
P_FROM IN VARCHAR2,
p_to IN VARCHAR2,
msg_subject IN VARCHAR2 DEFAULT NULL,
p_msg_body IN LONG DEFAULT NULL) is
LONG v_to_list;
LONG v_cc_list;
LONG v_bcc_list;
T_DATE VARCHAR2 (255) DEFAULT TO_CHAR(SYSDATE, 'DD MON YYYY HH24:MI:SS PM');
g_mail_conn UTL_SMTP. CONNECTION;
SMTP_HOST CONSTANT VARCHAR2 (256): ='smtp - abc.defg.ca';
SMTP_PORT CONSTANT PLS_INTEGER: = 25;
BEGIN
g_mail_conn: = UTL_SMTP. OPEN_CONNECTION (SMTP_HOST, SMTP_PORT);
UTL_SMTP. HELO (g_mail_conn, SMTP_HOST);
UTL_SMTP.mail (g_mail_conn, p_sender_email);
UTL_SMTP. RCPT (g_mail_conn, p_to);
UTL_SMTP.open_data (g_mail_conn);
UTL_SMTP.write_data (g_mail_conn, "|) CRLF);
UTL_SMTP.write_data (g_mail_conn, p_msg_body);
UTL_SMTP.close_data (g_mail_conn);
UTL_SMTP. Quit (g_mail_conn);
EXCEPTION
WHEN utl_smtp.transient_error THEN
Dbms_output.put_line ('TransientError: invalid operation in the service may not be available.) ") ;
WHEN utl_smtp.permanent_error THEN
Dbms_output.put_line (' permanent error: the entered email is invalid or recepients mailbox is full.) ») ;
WHILE others THEN
Dbms_output.put_line ('Unable to send an email' |') '|| SQLERRM);
END p_sendmail;
[/ code]
Now by calling the procedure to send an email:
[code]
p_sendmail (p_sender_email = > ' [email protected]'-, send an E-mail to the donor )
p_from = > ' ADS < [email protected] > ',
p_to = > v_store_email_address,
p_msg_subject = > 'anonymous user ',.
p_msg_body = > 'thank you ' |
CRLF.
"Email confirms that we have received your promise |
CRLF.
CRLF.
' Name: '. v_full_name |
CRLF.
' Temporary ID: ' | v_azbwccp_id |
CRLF.
"Reference number: ' |" MTID |
CRLF.
"Amount: ' | '. TO_NUMBER (campaign_desg_amt1) |
CRLF.
"Campaign: ' | '. campaign |
CRLF.
' Description: ' | '. adbdesg_rec.adbdesg_name |
CRLF.
' Type: ' | atvpldg_rec.atvpldg_desc |
CRLF.
' Duration: ' | '. atvpdur_rec.atvpdur_desc |
CRLF.
"Frequency: ' | '. atvfreq_rec.atvfreq_desc |
CRLF.
"Start date: ' | '. bill_date2 |
CRLF.
CRLF.
'Your commitment is processed.' |
CRLF.
"At the same time, if you want to change this transaction, please contact us.
CRLF.
CRLF.
"Thank you for your support." |
CRLF.
CRLF.
CRLF.
CRLF.
' * This is an automated message system. Please, do not respond to this email. *** ') ;
[/ code]
I've also attached a screenshot of the error message below:
Please help me if you can. I just can't understand the question.
Thanks in advance
Sandeep
In the header of the procedure, I spent my parameter as msg_subject and during the call, he was p_msg_subject. The minute that I corrected the error, I was able to correctly compile the whole package body.
The question can be now closed.
-
PLS 00306 evil type using DECODE
Helloin the hope of finding a quick response and not look too stupid current...
I have a PL/SQL procedure, I built using a save to spend a required group of data to a package values, I also built.
Having eliminated all other errors, I finished with the error PLS 00306 wrong number or types of argument.
To locate the offending entry...
(1) I made a dummy copy of the procedure called (P1) and (R1) type of record in the package and that returns my driving procedure (P2).
(2) I progressed to comment on data from a cursor for selecting data in a table P2 (SQL1) spent (P1) as a (R2) record and the corresponding (1) record (P1)
(3) I enabled each pair of data until I found what column has generated the error.
There were two...
One is a field of NVARCHAR2 (F1) to enter in a NCLOB record item, SELECT
(I'm pretty confident how to get around this - I can't just use a TO_NCLOB on F1 I use a SQL with database connection)
The other is where I use a DECODE in SQL go to a NVARCHAR2 field (12) (F2)
SQL1 simplified line... DECODE(COL1,'VAL1','VAL2') F1
Here's the quesition *.
I'm guessing that Oracle sees this as a generic string and not a NVARCHAR2 data type
How can I change the SQL code to avoid the error?
Thanks for your time (and be gentle with me, please).
Elaine
In fact using TO_NCHAR seems to have fixed - must be the string to NVARHCAR2 he had problems with.
Thanks for posting... Elaine
-
PLS-00306: wrong number or types of arguments in the call to "TO_CHAR.
Hi guys, I learn Pl/SQL. Writing a simple function which allows to calculate dates. It takes contract_date and determines the date of the following Sunday.
My current code has the compile error: PLS-00306: wrong number or types of arguments in the call to 'TO_CHAR' which I believe has to do with the to_char (trunc(contract_date,'D')): = contract_weekday;
I don't understand what the problem with my return it...
Here is my code: thanks for any help!
display errors
create or replace FUNCTION
contract_dates(contract_date in date)
DATE OF RETURN
IS
starting_sunday DATE;
-DATE of ending_saturday: = starting_sunday + 6;
contract_weekday varchar (32);
days_add NUMBER;
BEGIN
TO_CHAR (trunc(contract_date,'D')): = contract_weekday;
case contract_weekday
When 1 then days_add: = 6;
When 2 then days_add: = 5;
When 3 then days_add: = 4;
When 4 then days_add: = 3;
When 5 then days_add: = 2;
When 6 then days_add: = 1;
Another days_add: = 7;
end case;
starting_sunday: = contract_date + days_add;
To_date (starting_sunday) RETURN;
END;It is the reverse:
CREATE OR REPLACE FUNCTION contract_dates(contract_date IN DATE) RETURN DATE IS starting_sunday DATE; --ending_saturday DATE := starting_sunday + 6; contract_weekday varchar(1); days_add NUMBER; BEGIN contract_weekday := to_char(trunc(contract_date,'D')); case contract_weekday when 1 then days_add := 6; when 2 then days_add := 5; when 3 then days_add := 4; when 4 then days_add := 3; when 5 then days_add := 2; when 6 then days_add := 1; else days_add := 7; end case; starting_sunday := contract_date + days_add; RETURN to_date(starting_sunday); END;
-
I have This Oracle 12c Procedure
CREATE OR REPLACE PROCEDURE LOGINCHECK(stmt IN CLOB)
AS
C INTEGER;
N INTEGER;
RC SYS_REFCURSOR;
BEGIN
C := SYS.DBMS_SQL.OPEN_CURSOR;
SYS.DBMS_SQL.PARSE(C,stmt,DBMS_SQL.native);
N := SYS.DBMS_SQL.EXECUTE(C);
SYS.DBMS_SQL.GET_NEXT_RESULT(C,RC);
SYS.DBMS_SQL.RETURN_RESULT(RC);
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
when OTHERS then
RAISE;
END LOGINCHECK;for example, to create an oracle with a xml or clob type IN FastInventory procedure and pass xml from this link https://drive.google.com/file/d/0BwAVQqYmX0-zQ1d1VnNmZndfcVE/view?usp=sharing
The of the stmt parameter is approximately 50000 characters.
DBMS_SQL. ANALYSIS gives error PLS-00172: string literal too long.
I'm passing stmt My .net code as parameter . OracleDbType.Clob then why this error occurring.
I use Oracle 12 c database. Visual Studio 2012, .net Framework 4;
OK now I have a response team of oracle.net where it says on tweeter
@OracleDOTNET team .NET oracle
Seems to be a bug specific to PL/SQL, because the error occurs on the DBMS_SQL. ANALYZE the call
Thank you all who have helped and at least tried to solve this problem.
-
I wrote the following anonymous block. He has a slider ""cur_total_tckt "who choose 6 columns." A nested table 'total_tckt_colcn' is declared of type ""cur_total_tckt "." In the dbms_output.put_line I want to print each item in my collection. It gives me the following error:
PLS-00306: wrong number or types of arguments in the call to "PUT_LINE '.
ORA-06550: line 29, column 2:
PL/SQL: Statement ignored
06550 00000 - "line %s, column % s:\n%s".
I want to print all 6 columns of an element for 366 these elements.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DECLARE
CURSOR cur_total_tckt
is
select t.ticket_id ticket_id, t.created_date created_date, t.created_by created_by, t.ticket_status ticket_status,
t.last_changed last_changed, h.created_date closed_date
from n01.cc_ticket_info t
inner join n01.cc_ticket_status_history h
on (t.ticket_id = h.ticket_id)
where t.last_changed >= '6/28/2012 17:28:59' and t.last_changed < (sysdate + interval '1' day);type total_tckt_colcn
is
TABLE OF cur_total_tckt%rowtype;
total_tckt_col total_tckt_colcn;
total_coach_col total_tckt_colcn;
begin
total_tckt_col := total_tckt_colcn ();
total_coach_col := total_tckt_colcn ();
OPEN cur_total_tckt;
loop
fetch cur_total_tckt bulk collect into total_tckt_col limit 100;
dbms_output.put_line(total_tckt_col.last);
FOR i IN total_tckt_col.first..total_tckt_col.last
loop-- dbms_output.put_line(total_tckt_col(i).ticket_id); -- this line works
dbms_output.put_line(total_tckt_col(i)); -- this line gives error
END LOOP;
exit
WHEN (cur_total_tckt%NOTFOUND);
END LOOP ;
CLOSE cur_total_tckt;
end;making reference to an element differs from the reference to a field in the record that is part of the collection.
'dbms_output.put_line (total_tckt_col (i))' works if there is only a single element.
will not work if this element has subcomponents. in your case it has subcomponents as fields in a record.
-
I have a new Apple and made a Migration of Applications. data etc old Apple Apple again. Creative cloud gives error re damaged and to download and install again, however, after doing this installation starts but keeps giving the same error re file creative cloud. How to solve?
Uninstall, use the CS cleaning tool, and then reinstall.
Adobe Creative Suite Cleaner Tool allows to solve the problems of installation for CS3 thru CS6 and creative cloud
-
PLS-00306: wrong number or types of arguments in the call
Hello
I get this error when I run the script to test below:
< font color = "red" >
PLS-00306: wrong number or types of arguments in the call to 'SPLIT_AMOUNT '.
< / make >
This script is to test that the package below that I wrote. It seems to use the same 9 parameters of the same type:
TEST SCRIPT+ *.
PACKAGE+ *.declare TYPE g_table_number IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; p_customer_trx_ids g_table_number; p_total_amount_to_apply NUMBER := 10; p_total_amount_to_adjust NUMBER; -- p_result NUMBER; p_message VARCHAR2(200); p_payment_schedule_ids g_table_number; p_terms_sequence_numbers g_table_number; p_apply_amounts g_table_number; p_adjust_amounts g_table_number; begin p_customer_trx_ids(1) := 23613; p_customer_trx_ids(2) := 23614; hirap.split_amount ( p_customer_trx_ids ,p_total_amount_to_apply ,p_total_amount_to_adjust ,p_result ,p_message ,p_payment_schedule_ids ,p_terms_sequence_numbers ,p_apply_amounts ,p_adjust_amounts ); for i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP dbms_output.put_line( i || ' p_customer_trx_id: ' || p_customer_trx_ids (i) || ' p_apply_amounts(i): ' || p_apply_amounts(i) || ' p_adjust_amounts: ' || p_adjust_amounts(i) ); END LOOP; end; /
Does anyone know what is the problem?CREATE OR REPLACE PACKAGE hirap AS TYPE g_table_number IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; PROCEDURE split_amount ( p_customer_trx_ids IN g_table_number ,p_total_amount_to_apply IN NUMBER ,p_total_amount_to_adjust IN NUMBER -- ,p_result OUT NUMBER ,p_message OUT VARCHAR2 ,p_payment_schedule_ids OUT g_table_number ,p_terms_sequence_numbers OUT g_table_number ,p_apply_amounts OUT g_table_number ,p_adjust_amounts OUT g_table_number ); END hirap; / CREATE OR REPLACE PACKAGE BODY hirap AS PROCEDURE split_amount ( p_customer_trx_ids IN g_table_number ,p_total_amount_to_apply IN NUMBER ,p_total_amount_to_adjust IN NUMBER -- ,p_result OUT NUMBER ,p_message OUT VARCHAR2 ,p_payment_schedule_ids OUT g_table_number ,p_terms_sequence_numbers OUT g_table_number ,p_apply_amounts OUT g_table_number ,p_adjust_amounts OUT g_table_number ) IS l_total_pay_sched_amount NUMBER; l_customer_trx_id NUMBER; l_amount_due_remainings g_table_number; CURSOR pay is SELECT p.payment_schedule_id ,p.terms_sequence_number ,p.amount_due_remaining FROM ar_payment_schedules_all p WHERE customer_trx_id = l_customer_trx_id AND p.terms_sequence_number = (SELECT min(p1.terms_sequence_number) FROM ar_payment_schedules_all p1 WHERE p1.customer_trx_id = l_customer_trx_id AND p1.status = 'OP' ); BEGIN p_result := 0; -- means OK -- read the payment schedule for each transaction and store values and totals: FOR i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP l_customer_trx_id := p_customer_trx_ids(i); l_total_pay_sched_amount := 0; BEGIN OPEN pay; FETCH pay INTO p_payment_schedule_ids(i) ,p_terms_sequence_numbers(i) ,l_amount_due_remainings(i); CLOSE pay; l_total_pay_sched_amount := l_total_pay_sched_amount + l_amount_due_remainings(i); EXCEPTION WHEN NO_DATA_FOUND THEN fnd_file.put_line(fnd_file.LOG, 'Transaction does not exist for CUSTOMER_TRX_ID: ' || p_customer_trx_ids(i) ); RAISE; WHEN OTHERS THEN RAISE; END; END LOOP; -- save values for each payment schedule based on total FOR i IN p_customer_trx_ids.FIRST .. p_customer_trx_ids.LAST LOOP p_apply_amounts(i) := round ( l_amount_due_remainings(i) / l_total_pay_sched_amount * (p_total_amount_to_apply + p_total_amount_to_adjust) , 2 ); p_adjust_amounts(i) := l_amount_due_remainings(i) - p_apply_amounts(i); END LOOP; EXCEPTION WHEN OTHERS THEN p_result := 2; p_message := 'SQLCODE= ' || SQLCODE || ', SQLERRM = ' || SQLERRM; fnd_file.put_line( fnd_file.LOG , TO_CHAR(SYSDATE, 'HH24:MI:SS') || ' - ' || p_message ); END; -- END hirap; /
Thank you
SteveHi, Steve,.
The package contains a data type called g_table_number and also a procedure called split_amount.
That does not create another data type (different), also called g_table_number, outside of the package, any more that it prevents you from creating another procedure, also called split_amount, also. When you want to reference the data type or the procedure outside the package from the package, then you must prefix the name with the name of the package. You do this correctly when you reference the name of the procedure of your anonymous block:hirap.split_amount ( p_customer_trx_ids ...
Now you must do the same when you reference the data type:
declare p_customer_trx_ids hirap.g_table_number; p_total_amount_to_apply NUMBER := 10; p_total_amount_to_adjust NUMBER; -- p_result NUMBER; p_message VARCHAR2(200); p_payment_schedule_ids hirap.g_table_number; p_terms_sequence_numbers hirap.g_table_number; p_apply_amounts hirap.g_table_number; p_adjust_amounts hirap.g_table_number; begin ...
If you do not create another type of (different) data outside of the package, it will be the same as the type of data inside the packaging, even if the name is the same and they are defined in the same way. The package expects the arguments of the type hirap.g_table_number, so you have to give the hirap.g_table_number of type arguments.
Maybe you are looking for
-
Hello I copied mistalkenly file associated with ntduser and others in my C: / drive in a folder. At the next reboot it made me get this message "NTLDR is missing". Now that I know to move the file ntuser.dat from my location of folder in C: / locatio
-
My A940 dell printer spooler is disabled. I don't have how to restart it. Please help PS I have awindows XP 32 PS my email is * address email is removed from the privacy *
-
After Windows Update July 2011 Vista - now smaller font size
original title: updated July 2011 Windows Vista Last night I got a Windows Vista update automactic. This morning after turning on the computer, I noticed that the size of the police has changed and my icons have been moved around. I could care the ic
-
Y at - it a BluRay DVD player for the HP HDX 9010nr?
Y at - it a BluRay DVD player for the HP HDX 9010nr?
-
How to click on the MENU button
Hello I use Simulator 9550 and BlackBerry JDE 5.0. in my application, I try to click on the menu with the following code key. EventInjector.invokeEvent (new EventInjector.KeyCodeEvent (EventInjector.KeyCodeEvent.KEY_DOWN, Keypad.map ((char) Keypad.KE