Using NVL function in Dynamic SQL
Hi ,
I have created a procedure using the Dynamic SqL and while using the NVL() getting the following error . ORA-00936: missing expression.
The query I have written as
SQL_Txt:=' INSERT INTO VF.tblCData (A, B, C, D, E, F,G,H,I,J)
SELECT '||l_A||',
'||l_B||',
'||l_C||',
'||l_D||',
NULL ,
'||L_F||',
NVL('||Param1||',''''),
NVL('||Param2||',''''),
NVL('||Param3||',''''),
NULL
FROM '||ParamTbl1||' WHERE ' ;
and so on.
For Param1 I have data for one execution and Param2 and Param3 is null for that execution.
While executing the same I am getting below
INSERT INTO VF.tblCData (A, B, C, D, E, F,G,H,I,J)
SELECT 25,
1,
7,
6,
NULL ,
5,
NVL(PurchaseDate,''),
NVL(,''),
NVL(,''),
NULL
FROM xyz.PBuyer@pocdb WHERE
and error ORA-00936: missing expression is popping up for Param2 and Param3 NVL(,'')
Any suggestion to resolve this issue is highly appreciable.
Thanks
Sudipta
NVL(,''),Where's the first argument to NVL? That's the obvious problem. Empty strings are NULL in Oracle anyway, so just lose the NVL and insert the values...
C:\>
C:\>sqlplus hr/hr
SQL*Plus: Release 11.2.0.3.0 Production on Wed May 8 10:08:53 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> set NULL I_AM_NULL
SQL> create table x(y varchar2(20));
Table created.
SQL> insert into x values ('');
1 row created.
SQL> select * from x;
Y
I_AM_NULL
SQL>
Similar Messages
-
How to use nvl() function in SQL Loader
I am trying to use nvl() funtion in my SQL Loader control file and I keep geting errors. Would someone please tell me where I can find the syntax reference to this?
Thanks a lot!I just answered a similar question like this last Thursday.
SQL*LOADER how to load blanks when data is null -
Report using ref cursor or dynamic Sql
Hi,
I never create a report using a ref cursor or a dynamic sql. Could any one help me to solve the below issue.
I have 2 tables.
1. Student_Record
2. Student_csv_help
Student_Record the main table where the data is stored.
Student_csv_help will contain the all the column names of the Student_record.
CREATE TABLE Student_CSV_HELP
ENTRY_ID NUMBER,
RAW_NAME VARCHAR2(40 BYTE),
DESC_NAME VARCHAR2(1000 BYTE),
IN_OUTPUT_LIST VARCHAR2(1 BYTE)
SET DEFINE OFF;
Insert into TOA_CSV_HELP
(ENTRY_ID, RAW_NAME, DESC_NAME, IN_OUTPUT_LIST)
Values
(1, 'S_ID', 'Student ID', 'Y');
Insert into TOA_CSV_HELP
(ENTRY_ID, RAW_NAME, DESC_NAME, IN_OUTPUT_LIST)
Values
(2, 'S_Name', 'Student Name', 'Y');
Insert into TOA_CSV_HELP
(ENTRY_ID, RAW_NAME, DESC_NAME, IN_OUTPUT_LIST)
Values
(3, 'S_Join_date', 'Joining Date', 'Y');
Insert into TOA_CSV_HELP
(ENTRY_ID, RAW_NAME, DESC_NAME, IN_OUTPUT_LIST)
Values
(4, 'S_Address', 'Address', 'Y');
Insert into TOA_CSV_HELP
(ENTRY_ID, RAW_NAME, DESC_NAME, IN_OUTPUT_LIST)
Values
(5, 'S_Fee', 'Tution Fee', 'N');
commit;
CREATE TABLE Student_record
S_ID NUMBER,
S_Name VARCHAR2(100 BYTE),
S_Join_date date,
S_Address VARCHAR2(360 BYTE),
S_Fee Number
Insert into Student_record
(S_ID, S_Name, S_Join_date, S_Address,S_Fee)
Values
(101, 'john', TO_DATE('12/17/2009 08:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'CA-94777', 2000);
Insert into Student_record
(S_ID, S_Name, S_Join_date, S_Address,S_Fee)
Values
(102, 'arif', TO_DATE('12/18/2009 08:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'CA-94444', 3000);
Insert into Student_record
(S_ID, S_Name, S_Join_date, S_Address,S_Fee)
Values
(103, 'raj', TO_DATE('12/19/2009 08:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'CA-94555', 2500);
Insert into Student_record
(S_ID, S_Name, S_Join_date, S_Address,S_Fee)
Values
(104, 'singh', TO_DATE('12/20/2009 08:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'CA-94666', 2000);
Commit;
Now my requirement is:
I have a form with Student_record data block. When i Click on print Button on this form. It will open another window which has Student_CSV_HELP.DESC_NAME and a check box before this.
The window look like as below:
check_box DESC_NAME+
X S_ID+
-- S_Name+
X S_Join_date+
X S_Address+
-- S_Fee+
X means check box checked.+
-- means check box Unchecked.+
After i selected these check boxes i will send 2 parameters to the report server
1. a string parameter to the report server which has the value 'S_ID,S_Join_date,S_Address' (p_column_name := 'S_ID,S_Join_date,S_Address');
2. the s_id value from the student_record block (p_S_id := '101');
Now my requirement is when i click on run. I need a report like as below:
Student ID : 101+
Joining Date : 12/17/2009 08:00:00+
Address : CA-94777+
This is nothing but the ref cursor should run like as below:
Select S_id from student_record block S_id = :p_S_id;
Select S_Join_date from student_record block S_id = :p_S_id;
Select S_Address from student_record block S_id = :p_S_id;
So, according to my understanding i have to select the columns at the run time. I dont have much knowledge in creating reports using ref cursor or dynamic sql.
So please help me to solve this issue.
Thanks in advance.Plain sql should satisfy your need. Try ....
Select S_id, S_Join_date, S_Address
from student_record
where S_id = :p_S_id -
Creating Report using EPM Functions with Dynamic Filters
Hi All,
I am new to BPC, In BPC 7.5 i seen like we can generate EPM report using EVDRE function very quickly and easy too. Is the same feature is existing in BPC 10.0 ? if no how can we create EPM reports using EPM Functions with Dynamic Filters on the Members of the dimension like in BPC 7.5.
And i searched in SDN, there is no suitable blogs or documents which are related to generation of Reports using EPM Functions. All are described just in simple syntax way. It is not going to be understand for the beginners.
Would you please specify in detail step by step.
Thanks in Advance.
Siva NagarajuSiva,
These functions are not used to create reports per se but rather assist in building reports. For ex, you want to make use of certain property to derive any of the dimension members in one of your axes, you will use EPMMemberProperty. Similary, if you want to override members in any axis, you will make use of EPMDimensionOverride.
Also, EvDRE is not replacement of EPM functions. Rather, you simply create reports using report editor (drag and drop) and then make use of EPM functions to build your report. Forget EvDRE for now.
You can protect your report to not allow users to have that Edit Report enabled for them.
As Vadim rightly pointed out, start building some reports and then ask specific questions.
Hope it clears your doubts. -
hi,
i want to use nvl Function in that Quary
select f_words(SUM(a.AMOUNT)+sum(a.vat_amount) +
nvl( (select sum(b.LABOUR_AMT)+sum(b.service_tax_amt)
from LAB_WORK_DTL b
where a.bill_no =b.bill_no), 0)
)) as t
from TRANSACTION_DETAILS a
where a.bill_no =:P42_bill_no
group by a.BILL_NO;
i am using NVL in that Quary Like This
select f_words*(nvl(S*UM(a.AMOUNT)+sum(a.vat_amount) +
nvl( (select sum(b.LABOUR_AMT)+sum(b.service_tax_amt)
from LAB_WORK_DTL b
where a.bill_no =b.bill_no), 0)
)) as t
from TRANSACTION_DETAILS a
where a.bill_no =:P42_bill_no
group by a.BILL_NO;
I want to use NVL Function In BOLD
How Can I use NVL Functiion.
Thanks
Edited by: Manoj Kaushik on Mar 25, 2010 5:55 AMhi,
select f_wordsl(SUM(a.AMOUNT)+sum(a.vat_amount) +
nvl( (select sum(b.LABOUR_AMT)+sum(b.service_tax_amt)
from LAB_WORK_DTL b
where a.bill_no =b.bill_no), 0)
)) as t
from TRANSACTION_DETAILS a
where a.bill_no =:P42_bill_no
group by a.BILL_NO;
i have two tables Bill no is comman field in both tables if i have not enter value in any one of the table .
so how can i show Total amount in words if Bill NO are not in any one table.
Thanks -
Can I use table function inside Dynamic query ?
Dear Gurus,
I have following code
DECLARE
TYPE CRITERIA_LIST_TABLE AS TABLE OF VARCHAR2(20);
OtherNoList CRITERIA_LIST_TABLE; /* CRITERIA_LIST_TABLE is index by table*/
QUERY_STRING VARCHAR2(4000);
BEGIN
OtherNoList := CRITERIA_LIST_TABLE();
SELECT DISTINCT REGEXP_SUBSTR('1,5,6,4', '[^\,]+',1, LEVEL ) BULK COLLECT INTO OtherNoList
FROM DUAL
CONNECT BY LEVEL <= REGEXP_COUNT('1,5,6,4', '\,') + 1 ;
QUERY_STRING := 'INSERT INTO TAB1 (C1,C2) '||
'SELECT C1,'||
'C2 '||
'FROM TAB1 ,'||
'TABLE( '||
'CAST (OtherNoList AS CRITERIA_LIST_TABLE) '||
') OTHRNOS '||
'WHERE TAB1.C1 = OTHRNOS.COLUMN_VALUE ';
DBMS_OUTPUT.PUT_LINE('Query String is '||QUERY_STRING);
EXECUTE IMMEDIATE QUERY_STRING;
END;
Can I use Table function inside dynamic query.
Thanking in advance
SanjeevTry:
DECLARE
TYPE CRITERIA_LIST_TABLE AS TABLE OF VARCHAR2(20);
OtherNoList CRITERIA_LIST_TABLE; /* CRITERIA_LIST_TABLE is index by table*/
QUERY_STRING VARCHAR2(4000);
BEGIN
OtherNoList := CRITERIA_LIST_TABLE();
SELECT DISTINCT REGEXP_SUBSTR('1,5,6,4', '[^\,]+',1, LEVEL ) BULK COLLECT INTO OtherNoList
FROM DUAL
CONNECT BY LEVEL <= REGEXP_COUNT('1,5,6,4', '\,') + 1 ;
QUERY_STRING := 'INSERT INTO TAB1 (C1,C2) '||
'SELECT C1,'||
'C2 '||
'FROM TAB1 ,'||
'TABLE( '||
'CAST (:OtherNoList AS CRITERIA_LIST_TABLE) '||
') OTHRNOS '||
'WHERE TAB1.C1 = OTHRNOS.COLUMN_VALUE ';
DBMS_OUTPUT.PUT_LINE('Query String is '||QUERY_STRING);
EXECUTE IMMEDIATE QUERY_STRING using OtherNoList;
END;p.s. not tested
Amiel Davis -
How to create a function with dynamic sql or any better way to achieve this?
Hello,
I have created below SQL query which works fine however when scalar function created ,it
throws an error "Only functions and extended stored procedures can be executed from within a
function.". In below code First cursor reads all client database names and second cursor
reads client locations.
DECLARE @clientLocation nvarchar(100),@locationClientPath nvarchar(Max);
DECLARE @ItemID int;
SET @locationClientPath = char(0);
SET @ItemID = 67480;
--building dynamic sql to replace database name at runtime
DECLARE @strSQL nvarchar(Max);
DECLARE @DatabaseName nvarchar(100);
DECLARE @localClientPath nvarchar(MAX) ;
Declare databaselist_cursor Cursor for select [DBName] from [DataBase].[dbo].
[tblOrganization]
OPEN databaselist_cursor
FETCH NEXT FROM databaselist_cursor INTO @DatabaseName
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Processing DATABASE: ' + @DatabaseName;
SET @strSQL = 'DECLARE organizationlist_cursor CURSOR
FOR SELECT '+ @DatabaseName +'.[dbo].[usGetLocationPathByRID]
([LocationRID])
FROM '+ @DatabaseName +'.[dbo].[tblItemLocationDetailOrg] where
ItemId = '+ cast(@ItemID as nvarchar(20)) ;
EXEC sp_executesql @strSQL;
-- Open the cursor
OPEN organizationlist_cursor
SET @localClientPath = '';
-- go through each Location path and return the
FETCH NEXT FROM organizationlist_cursor into @clientLocation
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @localClientPath = @clientLocation;
SELECT @locationClientPath =
@locationClientPath + @clientLocation + ','
FETCH NEXT FROM organizationlist_cursor INTO
@clientLocation
END
PRINT 'current databse client location'+ @localClientPath;
-- Close the Cursor
CLOSE organizationlist_cursor;
DEALLOCATE organizationlist_cursor;
FETCH NEXT FROM databaselist_cursor INTO @DatabaseName
END
CLOSE databaselist_cursor;
DEALLOCATE databaselist_cursor;
-- Trim the last comma from the string
SELECT @locationClientPath = SUBSTRING(@locationClientPath,1,LEN(@locationClientPath)- 1);
PRINT @locationClientPath;
I would like to create above query in function so that return value would be used in
another query select statement and I am using SQL 2005.
I would like to know if there is a way to make this work as a function or any better way
to achieve this?
Thanks,This very simple: We cannot use dynamic SQL from used-defined functions written in T-SQL. This is because you are not permitted do anything in a UDF that could change the database state (as the UDF may be invoked as part of a query). Since you can
do anything from dynamic SQL, including updates, it is obvious why dynamic SQL is not permitted as per the microsoft..
In SQL 2005 and later, we could implement your function as a CLR function. Recall that all data access from the CLR is dynamic SQL. (here you are safe-guarded, so that if you perform an update operation from your function, you will get caught.) A word of warning
though: data access from scalar UDFs can often give performance problems and its not recommended too..
Raju Rasagounder Sr MSSQL DBA
Hi Raju,
Can you help me writing CLR for my above function? I am newbie to SQL CLR programming.
Thanks in advance!
Satya
-
Compilation problems using NVL function in Pro*C subselect
I have come across a weird oracle problem. When I execute the following query in SQLPlus it works but when
I include it in Pro*C code in a EXEC SQL statement it gives syntax errors and fails to compile. Any idea what I am doing wrong.
SELECT DISTINCT
A.ID_PERSON,
C.ID_STAGE_PERSON_LINK ,
A.NM_PERSON_FULL,
A.NBR_PERSON_AGE,
A.ADDR_PERSON_ST_LN_1,
A.ADDR_PERSON_CITY,
A.ADDR_PERSON_ZIP,
A.CD_PERSON_STATE,
A.CD_PERSON_COUNTY,
A.NBR_PERSON_PHONE,
C.CD_STAGE_PERS_REL_INT
FROM
PERSON A,
STAGE_PERSON_LINK C
WHERE
C.ID_CASE = 88776721
AND A.IND_INVALID_PERS IS NULL
AND C.CD_STAGE_PERS_TYPE = 'PRN'
AND C.ID_PERSON = A.ID_PERSON
AND C.ID_STAGE_PERSON_LINK =
NVL (
(SELECT MAX(F.ID_STAGE_PERSON_LINK)
FROM STAGE_PERSON_LINK F
WHERE F.ID_PERSON=C.ID_PERSON
AND F.ID_CASE = C.ID_CASE
AND F.CD_STAGE_PERS_TYPE = 'PRN'
AND F.CD_STAGE_PERS_REL_INT IS NOT NULL)
(SELECT MAX(G.ID_STAGE_PERSON_LINK)
FROM STAGE_PERSON_LINK G
WHERE G.ID_PERSON=C.ID_PERSON
AND G.ID_CASE = C.ID_CASE
AND G.CD_STAGE_PERS_TYPE = 'PRN')
AND A.ID_PERSON NOT IN
SELECT S.ID_PERSON
FROM STAGE_PERSON_LINK S,STAGE T
WHERE S.ID_CASE = C.ID_CASE
AND S.ID_CASE = T.ID_CASE
AND S.ID_STAGE = T.ID_STAGE
AND T.CD_STAGE <> 'INT'
MINUS
SELECT H.ID_PERSON
FROM STAGE_PERSON_LINK H, STAGE F
WHERE H.ID_CASE = F.ID_CASE
AND H.ID_STAGE = F.ID_STAGE
AND H.ID_CASE = C.ID_CASE
AND H.CD_STAGE_PERS_ROLE <> 'XE'
AND F.CD_STAGE <> 'INT'
This query returns data when run in sqlplus.When used in a Pro*C C program and compiled the precompiler complains with syntax errors when used with EXEC SQL DECLARE CLSS82D_CURSOR CURSOR FOR < query above >.However removing the NVL function and retaining the subselect clause compiles but that is not what I want to do.
Syntax error at line 262, column 20, file clss82d.pc:
Error at line 262, column 20 in file clss82d.pc
SELECT MAX( F.ID_STAGE_PERSON_LINK )
...................1
PCC-S-02201, Encountered the symbol "MAX" when expecting one of the following:
( ) * + - / . @ | at, day, hour, minute, month, second, year,
The symbol "(" was substituted for "MAX" to continue.
Syntax error at line 263, column 10, file clss82d.pc:
Error at line 263, column 10 in file clss82d.pc
FROM STAGE_PERSON_LINK F
.........1
PCC-S-02201, Encountered the symbol "FROM" when expecting one of the following:
, ) * + - / | at, day, hour, minute, month, second, year,Pro*C works bit differently tha sqlplus. try removing the blank line after
SELECT MAX(G.ID_STAGE_PERSON_LINK)
FROM STAGE_PERSON_LINK G
WHERE G.ID_PERSON=C.ID_PERSON
AND G.ID_CASE = C.ID_CASE
AND G.CD_STAGE_PERS_TYPE = 'PRN')
good luck,
Gauranga -
I ran across a problem with the format of an ASCI output file of an SQL script. The problem I have is with handling a particular column that contains account numbers. The column is defined with 8 characters. However not every entry has data. I have several fields that don't have any information.
Originally in my script I had the following line that made the script fail:
LPAD(TO_CHAR(TO_NUMBER(konten_nr)),8,'0'),
I then changed the line to the following: (The script ran but now I notice that the formatting is wrong)
LPAD(TO_NUMBER(LTRIM(konten_nr)),8,'0'),
I attempted to use the NVL function that will return a value when there is nothing in the column field but it doesn't work. Does anyone know what I'm doing wrong?
LPAD(NVL(TO_CHAR(TO_NUMBER(konten_nr),'FM999999999'),'0'),8,'0'),what is exactly your problem ?
you want to translater " 1234" in "00001234" ? then simply use to_char(konten_nr,'FM00000000') .
You want to translate " 1 1 1 1" in "01010101", then use replace(konten_nr,' ','0')
Give us some samples -
Strange behavior when searching a phrase using reg exp and dynamic sql
Hi,
I have a strange issue while using dynamic sql for an apex page. I have a requirement to search a string in the database column which is entered by user on a page item. The search process should search the whole phrase only.
I have a query generated dynamically in the back end and use it in a cursor in the stored procedure
SELECT t.group_cn , t.group_desc, t.group_type, t.partner_organization_id, t.partner_organization
FROM vr_idm_group t WHERE regexp_like(t.group_desc,'(^|\W)HR Selection & Assignment(\W|$)', 'i')The pl sql code with the dynamic sql statements are below.
IF p_search_process NOT in ('PARTNER') THEN
OPEN v_cursor FOR v_sql;
ELSE
OPEN v_cursor FOR v_sql USING p_search_id;
END IF;
LOOP
FETCH v_cursor INTo v_obj.group_cn, v_obj.group_desc, v_obj.group_type, v_obj.partner_organization_id,
v_obj.partner_organization, v_obj.match_count;
EXIT WHEN v_cursor%NOTFOUND ;
v_search_array.extend;
v_search_array(v_search_array.last) := v_obj;
dbms_output.put_line(v_sql);
END LOOP;The search works fine if the search string does not contain any special character like &,- etc.
However, if the search string contains any special character, it does not return any thing. This strange issue happens only if I call the procedure from the apex page and the search string contains a special character. (please note that the procedure works fine even from apex if the string does not have a special character). When I debugged this, found that, the cursor does not fetch any rows (it is supposed to fetch two rows) for unknown reason. When I run the query separately, it returns the two rows (in which the column group_desc contains the search string "HR Selection & Assignment") as desired. Also, when I test the procedure in the back end (PLSQL developer), it works fine.
Any idea, what is causing this strange behaviour?
Advance thanks.
Regards,
Natarajani don't see anything about a dataProvider. you're assigning a source for a scrollpane. scrollpane's don't have a dataProvider property.
anyway, other than arrayRun always being false when that last if-statement executes, what's the problem? doesn't that movieclip display when that 2nd branch of the last if-statement executes (assuming instance is defined correctly etc)? -
Insert into using a select and dynamic sql
Hi,
I've got hopefully easy question. I have a procedure that updates 3 tables with 3 different update statements. The procedure goes through and updates through ranges I pass in. I am hoping to create another table which will pass in those updates as an insert statement and append the data on to the existing data.
I am thinking of using dynamic sql, but I am sure there is an easy way to do it using PL/SQL as well. I have pasted the procedure below, and what I'm thinking would be a good way to do it. Below I have pasted my procedure and the bottom is the insert statement I want to use. I am faily sure I can do it using dynamic SQL, but I am not familiar with the syntax.
CREATE OR REPLACE PROCEDURE ACTIVATE_PHONE_CARDS (min_login in VARCHAR2, max_login in VARCHAR2, vperc in VARCHAR2) IS
BEGIN
UPDATE service_t SET status = 10100
WHERE poid_id0 in
(SELECT poid_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
DBMS_OUTPUT.put_line( 'Service Status:' || sql%rowcount);
UPDATE account_t SET status = 10100
WHERE poid_id0 IN
(SELECT account_obj_id0 FROM service_t
WHERE poid_type = '/service/telephony'
AND login >= min_login AND login <= max_login);
DBMS_OUTPUT.put_line( 'Account Status:' || sql%rowcount);
UPDATE account_nameinfo_t SET title=Initcap(vperc)
WHERE obj_id0 IN
(SELECT account_obj_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >=min_login AND login <= max_login);
DBMS_OUTPUT.put_line('Job Title:' || sql%rowcount);
INSERT INTO phone_card_activation values which = 'select a.status, s.status, s.login, to_char(d.sysdate,DD-MON-YYYY), ani.title
from account_t a, service_t s, account_nameinfo_t ani, dual d
where service_t.login between service_t.min_login and service_t.max_login
and ani.for_key=a.pri_key
and s.for_key=a.pri_key;'
END;
Thanks for any advice, and have a good weekend.
GeordieCorrect my if I am wrong but aren't these equal?
UPDATE service_t SET status = 10100
WHERE poid_id0 in
(SELECT poid_id0 FROM service_t
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
(update all the records where there id is in the sub-query that meet the WHERE Clause)
AND
UPDATE service_t SET status = 10100
WHERE poid_type='/service/telephony'
AND login >= min_login AND login <= max_login);
(update all the records that meet the WHERE Clause)
This should equate to the same record set, in which case the second update would be quicker without the sub-query. -
Hello guys,
I'm writing a stored procedure which tries to convert a string representing a number to a fixed size number(with 2 positions fraction). For example, if the input was "15,456" the result would become 15.45.
I was able to aschieve this ussing the CAST function within a query as follows:
select cast ('15,456' as number(15,2)) from dual; -- (the comma in my case is configured as fraction separator). The previous query executes OK using a query analyzer like SQL Plus.
However, when I try to use the same function within a stored procedure, it will complain about the number's size (15,2) and wont compile.
v_importe_ingresado := CAST('15,456' AS NUMBER(15,2));
Error output: PLS-00103 found '(' but expected one of the following: .)@%
When removing the (15,2) it compiles ok
¿Any clue?
I will appreciate any help.
Thanks in advance,
Bernabé¿Any clue?¿¿¿Over complication???
SQL> select round(15.456, 2), trunc(15.456, 2) from dual
2 /
ROUND(15.456,2) TRUNC(15.456,2)
15.46 15.45
SQL> Cheers, APC
Blog : http://radiofreetooting.blogspot.com/ -
Binding problem when using NVL function
Hello.
I have a problem with my ADF application (11.1.2.1).
I use VO with a query (database view) - pivot table.
If i use where clause like table.attr = :p_attr, everything works ok.
If i use where clause like table.attr = NVL (:p_attr, table.attr) and put a value in :p_attr (executeWithParam) , query executes as if there is a null value.
Debug console shows:
Binding null of type 12 for "p_attr".
Query with NVL works ok in sqldeveloper.
But in jdev, as if the table attribute isn't bind to bind variable.
If a just remove NVL function, it works.
Any idea?
Thanks.
Regards
Edited by: DejanH on Oct 6, 2011 1:32 PMHello.
I enter 50 in p_depart parameter and click "ExecuteWithParams". Query is executed and shows records (pivot table).
But if i look at the log window i see that an empty query was executed first.
<OracleSQLBuilderImpl> <bindParamValue> [427] Binding null of type 12 for "p_depart"
<OracleSQLBuilderImpl> <bindParamValue> [428] Binding null of type 12 for "p_job"
<OracleSQLBuilderImpl> <bindParamValue> [429] Binding null of type 12 for "p_hire_od"
<OracleSQLBuilderImpl> <bindParamValue> [430] Binding null of type 12 for "p_hire_do"
Then, it is autoexecuted for the second time with parameter set to the value i inserted.
<OracleSQLBuilderImpl> <bindParamValue> [470] Binding param "p_depart": 50
<OracleSQLBuilderImpl> <bindParamValue> [471] Binding null of type 12 for "p_job"
<OracleSQLBuilderImpl> <bindParamValue> [472] Binding null of type 12 for "p_hire_od"
<OracleSQLBuilderImpl> <bindParamValue> [473] Binding null of type 12 for "p_hire_do"
The same happens in our query. But ours is much more complex and it takes a lot of time to first execute "empty" query and then with inserted parameter.
We cannot use it.
It looks like bug.
Regards
Edited by: DejanH on Oct 11, 2011 6:52 AM -
Using max function in PL/SQL
VERY URGENT...
Am new to oracle...
I've written a package that display gif images in form of histogram/bar chart. using html,
I need to use max function to display values proportionately.
please help. i need to complete this assignment by 2/9/00 by 10.00 am at the latest. I've half written a function but I don't know if there's a simpler way fo doing this. html enabledFirst of all Thanks to all gentlemen who replied ..many thanks ...
Tried the ROW_NUMBER() option but still it is taking time...have given output for the query and tkprof results as well. Even when it doesn't fetch any record ( this is a valid cased because the input header id doesn't have any workflow request submitted & hence no entry in the wf_items table)..then also see the time it has taken.
Looked at the RANK & DENSE_RANK options which were suggested..but it is still taking time..
Any further suggestions or ideas as to how this could be resolved..
SELECT 'Y', 'Y', ITEM_KEY
FROM
( SELECT ITEM_KEY, ROW_NUMBER() OVER(ORDER BY BEGIN_DATE DESC) RN FROM
WF_ITEMS WHERE ITEM_TYPE = 'xxxxzzzz' AND ROOT_ACTIVITY = 'START_REQUESTS'
AND SUBSTR(ITEM_KEY,1,INSTR(ITEM_KEY,'-') - 1) = :B1
) T WHERE RN <= 1
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 1 0.00 1.57 0 0 0 0
Fetch 1 8700.00 544968.73 8180 8185 0 0
total 2 8700.00 544970.30 8180 8185 0 0
many thanks -
Need help in using sleep function in pl/sql
Hi,
need help:
I have a condition where i want to validate total_pass=total_fail and
I want to use the sleep function in a pl/sql where i want to wait for 2 minutes ie.checking
whether total_pass=total_fail based upon class_id .
I have the data in the table as:
CLASS_ID TOT_PASS TOT_FAIL
1 10 10
2 5 4
3 6 6
4 7 5
Any help will be needful for meI'm not quite sure what you are lookg for here, but whatever it is, your code as posted won't do it. You will never break out of the WHILE r_Class.Tot_Pass = r_Class.Tot_Fail loop, since these values will never change because you never get the next record form the cursor.
From your original data, it looks like your cursor will return multiple rows which implies to me that you want to fetch the first row from the cursor, check if tot_pass = tot_fail, if they are equal, sleep for two minutes then get the next row. This does not make sense to me. Once the select in the cursor is executed, the data it returns will not change due to Oracle's read consistency model, so there seems to me no point in the sleep.
The other alternative I can see is that you want to check all the returned rows, and if tot_pass = tot_fail for one of the rows (or possibly for all of the rows), then you want to sleep and try again.
If you can explain in words what it is you are trying to accomplish, someone will be able to point you to a solution.
John
Maybe you are looking for
-
Check NULL or BLANK values in Oracle Table
Hi All, I have a column which does not have have any value ( Datatype is Char for that column). I need query which gets update all the records for which the particular column does not have any value.. UPDATE table name SET COL1='ABC' WHERE ITEM LIKE(
-
since I had my computer upgraded to Windows 7 i had to reinstall itunes. my music library disappeared and my ipod classic no lnger synces music from itunes. what can I do?
-
Dear All, I have some query which is related to rebate agreement. Following Query is listed below 1. Why can we not set Sold-to parties for Rebate recipient when creating bonus agreement? 2. I do not understand how I should use each checkboxes from R
-
When I try to watch a video from Youtube the screen goes black, a loading symbol spins, then the "loading" word appears and nothing happens! I use WiFi connection and I've tested with the default browser and opera. Does anyone knows what may be?
-
I am rendering a video that contains a substantial amount of text, perhaps accounting for 50% or more of the entire scene content. It is agonizingly slow, leading me to believe that rendering text is significantly slower than captured material. Is th