To find my errror in this decode function
SELECT OFF_NAME,off_name_form , SUBURB_FORM, BRAND1, BRAND2, DECODE(BRAND2, BRAND2 IS NOR NULL, BRAND2||' '||'-'||' '||OFF_NAME_FORM,
BRAND1||' '||'-'||' '||OFF_NAME_FORM) from REL14_8_AU_POI_INTERM A,
POI_RELEASE.REL14_8_AU_POI_BRAND B WHERE A.IDX=B.IDX AND A.SOURCE='CALTEX'
try like this:
select off_name, off_name_form, suburb_form, brand1, brand2,
decode(brand2,
null, brand1 || ' - ' || off_name_form,
brand2 || ' - ' || off_name_form
from rel14_8_au_poi_interm a, poi_release.rel14_8_au_poi_brand b
where a.idx=b.idx and a.source='CALTEX'
or like this:
select off_name, off_name_form, suburb_form, brand1, brand2,
nvl(brand2, brand1) || ' - ' || off_name_form
from rel14_8_au_poi_interm a, poi_release.rel14_8_au_poi_brand b
where a.idx=b.idx and a.source='CALTEX'
Similar Messages
-
Wat is wrong in this decode function, it doesn get executed,please help me
wat is wrong in this decode function, it doesn get executed,please help me
decode(DVI.COMPANY||'.')||
DECODE(DVI.COST_CENTRE||'.')||
DECODE(DVI.ACCOUNT||'.')||
DECODE(DVI.LOCATION||'.')||
DECODE(DVI.PRODUCT||'.')||
DECODE(DVI.FUTURE)company_id,Hi,
I could not understand what you are trying to do with decode here.
The standard way of using the decode is like :
SQL>SELECT DECODE (1 , 1 ,'TRUE','FALSE') FROM DUAL;
DECO
TRUE
1 row selected.
1* SELECT DECODE (1 , 0 ,'TRUE','FALSE') FROM DUAL
SQL>/
DECOD
FALSE
1 row selected.
Please explain what you want to do with DECODE ?
Regards -
Oracle version: 9.2.0.1.0
Procob version: 9.2.0.1.0
Cobol version: 3.1.11
O.S. version: Windows XP
We have a pro*cobol file with the next conversion rule into a select defined with a cursor.
NVL(TO_CHAR(A.F_ALTA,'YYYYMMDD'),' '),
NVL(TO_CHAR(A.F_ESTADO,'YYYYMMDD'),' '),
we store the result data through a fetch of the cursor into two variables (W-F-ALTA and W-F-ESTADO) When the program executes an insert of these two values in a target table, we define the next conversion rule:
TO_DATE(DECODE(:W-F-ALTA,' ',NULL,:W-F-ALTA),'YYYYMMDD'),
TO_DATE(DECODE(:W-F-ESTADO,' ',NULL,:W-F-ESTADO),'YYYYMMDD')
Pro*Cobol and Cobol does not have errors when we precompile and compile the program but, when we execute the generated exe file, Oracle displays the next error:
ORA-01841 (full) year must be between -4713 and +9999, and not be 0
We think that the DECODE function is not understood by the cobol or pro*cobol interpreter. If we execute the same code without the DECODE function (only with TO_DATE function) there is no errors in the execution of the program
somebody knows if there are reported problems with this DECODE function in Pro*Cobol or Cobol and how to solve them?
ThanksTO_DATE(DECODE(:W-F-ALTA,' ',NULL,:W-F-ALTA),'YYYYMMDD'),
TO_DATE(DECODE(:W-F-ESTADO,' ',NULL,:W-F-ESTADO),'YYYYMMDD')The problem is with the input values of :W-F-ALTA and :W-F-ESTADO. Using the first line as an example, what you are saying is if :W-F-ALTA is ' ', substitute it with NULL, any other value should be :W-F-ALTA, then output the TO_DATE value of whatever the result is.
So if the value of :W-F-ALTA is the wrong charater or in the wrong input format, TO_DATE function does not understand it.
See examples of success and failures below with your Bind variables substituted with typical values.
SQL> select TO_DATE(DECODE(' ',' ',NULL,'20060830'),'YYYYMMDD') from dual;
TO_DATE(D
SQL> select TO_DATE(DECODE('1999-01-01',' ','NULL','20060830'),'YYYYMMDD') from dual;
TO_DATE(D
30-AUG-06
SQL> select TO_DATE(DECODE('SHOULD_ERROR',' ','NULL','SHOULD_ERROR'),'YYYYMMDD') from dual;
select TO_DATE(DECODE('SHOULD_ERROR',' ','NULL','SHOULD_ERROR'),'YYYYMMDD') from dual
ERROR at line 1:
ORA-01841: (full) year must be between -4713 and +9999, and not be 0
SQL> select TO_DATE(DECODE('20060830',' ','NULL','20060830'),'YYYYMMDD') from dual;
TO_DATE(D
30-AUG-06
SQL> select TO_DATE(DECODE('12345678',' ','NULL','12345678'),'YYYYMMDD') from dual;
select TO_DATE(DECODE('12345678',' ','NULL','12345678'),'YYYYMMDD') from dual
ERROR at line 1:
ORA-01843: not a valid month
SQL> -
hai all,
this is the query from robinson .....
I am trying to use decode function as below in PL/SQl..
DECODE(column1,a1,1,a2,2,a3,3,......a150,150,null)
i got a error as
---unhandled exception---
If this decode function is restricted to 120 values i get the
answer.
so i would like to know whether there is any restriction for the
number of arguments to be passed to the decode function.
I will be glad and grateful to receive a answer...for this query.
thanks in advance...
robinsonI'm not sure what is the limit for the decode function
arguments, but it certainly seems that you've reached it.
So, I'd recommend that you write a stored function that you will
call in your select. It should be like the following:
create
function f_decode (p in your_data_type) return your_ret_type
is
begin
if p=expr1 then
return value1;
elsif p=expr2 then
return value2;
elsif p=exprn then
return exprn;
else
return def_value;
end if;
Or, another way to handle it, even more graciously when the
number of possible values will vary pretty often may be to have
a table that you would join.
That's what I do when a have to deal with more than 10-20 values.
end; -
How can i use this expression in DECODE function?
My PNO table formart is
PNO PDate PCount
P001 08/27/05 09:45 20
P001 08/27/05 09:50 10
P002 08/27/05 03:40 20
P003 08/28/05 11:00 20
P003 09/28/05 10:00 20
P003 08/27/05 11:00 10
P003 09/27/05 04:00 50
I want to display total pcount for shift1(morning) and shift2(evening) & the date is 08/27/05
PNO Shift1(08/27/2005 08:00 to 12:30) Shift2(08/27/2005 02:00 to 05:30)
P001 30 0
P002 0 20
P004 10 50
So for shift1 condition is:
pdate>=08/27/2005 08:00 and pdate<=08/27/2005 12:30
So for shift2 condition is:
pdate>=08/27/2005 02:00 and pdate<=08/27/2005 05:30
If i tried to give this expression in decode function , its not working.
Please give me the sql query to solve this problem.
Millions of thanks in advacneforgot to paste the output for a given date.
SQL> create table pno
2 (pno varchar2(32)
3 ,pdate date
4 ,pcount number)
5 /
Table created.
SQL>
SQL> insert into pno values('P001', to_Date('08/27/05 09:45', 'mm/dd/yy hh:mi') ,20)
2 /
1 row created.
SQL> insert into pno values('P001', to_Date('08/27/05 09:50', 'mm/dd/yy hh:mi') ,10)
2 /
1 row created.
SQL> insert into pno values('P002', to_Date('08/27/05 03:40', 'mm/dd/yy hh:mi') ,20)
2 /
1 row created.
SQL>
SQL> insert into pno values('P003', to_Date('08/28/05 11:00', 'mm/dd/yy hh:mi') ,20)
2 /
1 row created.
SQL> insert into pno values('P003', to_Date('09/28/05 10:00', 'mm/dd/yy hh:mi') ,20)
2 /
1 row created.
SQL> insert into pno values('P003', to_Date('08/27/05 11:00', 'mm/dd/yy hh:mi') ,10)
2 /
1 row created.
SQL> insert into pno values('P003', to_Date('09/27/05 04:00', 'mm/dd/yy hh:mi') ,50)
2 /
1 row created.
SQL> select pno,sum(pcount) "Morning Shift Count"
2 from pno
3 where to_char(pdate, 'mm/dd/yyyy hh:mi') >= '08/27/2005 08:00'
4 and to_char(pdate, 'mm/dd/yyyy hh:mi') <='08/27/2005 12:30'
5 group by pno
6 /
PNO Morning Shift Count
P001 30
P003 10
SQL> select pno,sum(pcount) "Evening Shift Count"
2 from pno
3 where to_char(pdate, 'mm/dd/yyyy hh:mi') >= '08/27/2005 02:00'
4 and to_char(pdate, 'mm/dd/yyyy hh:mi') <='08/27/2005 05:30'
5 group by pno
6 /
PNO Evening Shift Count
P002 20 -
Decode Function I asked this in the wrong section so I hope Im right now!
select
a11.SEQ_MEMB_ID,
a11.Auth_Number,
a11.Admit_Primary_Date,
a11.Reviewer,
Decode (a11.Reviewer,
CLC, '2',
HBR, '3',
RAB, '4')
a11.admit_primary_date
from windsoradm.auth_master a11;
I am trying to get if the Reviewer is CLC then they are code 2 HBR Code 3 etc and it does not work. I take out the decode function and the query works. I am getting ORA-00923 FROM KEYWORD NOT FOUND WHERE EXPECTED.Hi,
Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved.
Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
Simplify the problem as much as possible. Remove all tables and columns that play no role in this problem.
Always say which version of Oracle you're using.
This is the right forum for this question. Mark your question in the other forum {message:id=10266930} as "Answered", so people won't waste their time.
925518 wrote:
select
a11.SEQ_MEMB_ID,
a11.Auth_Number,
a11.Admit_Primary_Date,
a11.Reviewer,
Decode (a11.Reviewer,
CLC, '2',
HBR, '3',
RAB, '4')
a11.admit_primary_date
from windsoradm.auth_master a11;
I am trying to get if the Reviewer is CLC then they are code 2 HBR Code 3 etc and it does not work. I take out the decode function and the query works. I am getting ORA-00923 FROM KEYWORD NOT FOUND WHERE EXPECTED.That's the correct DECODE syntax, where CLC, HBR and RAB are columns, and you want to return a string (not a number) such as '2'.
If 'CLC', 'HBR' and 'RAB' are literal values, then enclose them in single-quotes. If you want to return a number, don't put it in quotes. (Anyhting inside single-quotes is a string literal.)
Perhaps you meant something like:
, DECODE ( a11.Reviewer
, 'CLC' , 1
, 'HBR' , 2
, 'RAB' , 3
) AS reviewer_codeThere's an error right after the DECODE. You can't use a11.admit_primary_date as a column alias. (This is probably what's causing the ORA-00923 error.) Either a11_admit_primary_date (with an underscore instead of a dot) or admit_primary_date would be okay. If a11.admit_priomary_date is the next column in the SELECT clause, put a comma befor it.
You need a FROM clause. -
the InitCVIRTE function is not listed in the NIDAQ function reference online help? Why? and what does she do?and where can I find a description of this function? Can i use this function with visualc++ 6.0?
The InitCVIRTE function is in the CVI run time engine (cvirte.dll)..not part of NI-DAQ.
Applications written or using CVI may call this function..
How are you running into this ?
From the CVI help...
This function performs initialization of the CVI Run-Time Engine. It is needed only in executables or DLLs that are linked using an external compiler. Otherwise, it is harmless.
It should be called in your main, WinMain, or DllMain, function. The parameter values you should pass depend on which of these three functions you are calling InitCVIRTE from. The following examples show how to use InitCVIRTE in each case.
If you are using main, your code should be as follows.
int main (int argc, char *argv[])
if (InitCVIRTE (0, argv, 0) == 0)
return -1; /* out of memory */
/* your other code */
return 0;
If you are using WinMain, your code should be as follows.
int __stdcall WinMain (HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpszCmdLine,
int nCmdShow)
if (InitCVIRTE (hInstance, 0, 0) == 0)
return -1; /* out of memory */
/* your other code */
return 0;
If you are creating a DLL, you must call InitCVIRTE and CloseCVIRTE in your DllMain function, as in the following.
int __stdcall DllMain (void *hinstDLL, int fdwReason,
void *lpvReserved)
if (fdwReason == DLL_PROCESS_ATTACH)
if (InitCVIRTE (hinstDLL, 0, 0) == 0)
return 0; /* out of memory */
/* your other ATTACH code */
else if (fdwReason == DLL_PROCESS_DETACH)
/* your other DETACH code */
CloseCVIRTE ();
return 1;
NOTE: The prototype for InitCVIRTE is in cvirte.h, not
utility.h.
NOTE: In CVI 4.0.1, this function was expanded from one to
three parameters. Executables and DLLs that were
created using the one-parameter version of the function
will continue to work properly.
/*-------------------- Prototype ---------------------*/
int InitCVIRTE (void *HInstance, char *Argv[], void *Reserved);
Nandan Dharwadker
Staff Software Engineer
Measurement Studio Hardware Team -
My HP Pavillion has lost all functions of the keyboard volume controls. Icannot find any controls for this. How do I go about getting
this reset?Hi,
Try using Recovery Manager to reinstall your Audio Driver ( this will probably be IDT, but could be Realtek or Conexant ) - the procedure for using recovery manager to reinstall Software and Drivers is detailed in the relevant document on the link below.
Recovery Manager - Windows 7
Recovery Manager - Windows Vista
After the reinstallation has completed, restart the notebook.
Regards,
DP-K
****Click the White thumb to say thanks****
****Please mark Accept As Solution if it solves your problem****
****I don't work for HP****
Microsoft MVP - Windows Experience -
in "find my iPhone" i entered the functional "delete data". now i found my iPhone. it was not online. How can i modify it? nothing is deleted at this time
If you selected to erase the device using the find my iPhone erase feature, as soon as your iPhone reconnects with apple systems, it will erase. This command cannot be cancelled. However, you will be able to restore your device using the most recent icloud or itunes backup.
Hope this helps. -
Error while replacing IF statements with DECODE function in procedure
Hi All,
I have created a procedure which has nested IF statements. Now I want to replace the IF statements with DECODE functions to improve performance.
Procedure:
IF (var_int_sev = '0')
THEN
var_sev := '2';
ELSE
SELECT sev
INTO var_int_sev
FROM errorconfig
WHERE errorcode = var_errorcode;
var_sev := var_int_sev;
END IF;
I converted the above IF statement into DECODE function as mentioned below:
var_Sev := DECODE(var_int_sev,0,2,SELECT severity FROM errorconfig WHERE errorcode=var_ErrorCode)
But it throws below error at the select statement used inside DECODE.
Error(58,51): PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ( - + case mod new not null others <an identifier> <a double-quoted delimited-identifier> <a bind variable> avg count current exists max min prior sql stddev sum variance execute forall merge time timestamp interval date <a string literal with character set specification> <a number> <a single-quoted SQL string> pipe <an alternatively-quoted string literal with character set specification> <an alternativ
Can someone help me in converting the IF to DECODE in the above case. Also how can we use a select statement inside decode.instead of trying to rewrite all your code and hoping that the performance will be better, it's a better option to investigate and find out which part of your application is slow
read this:
When your query takes too long ... -
I want to use the following with decode, recently started on BODS.
Can you please provide the steps to use decode function
in source tabke fieldname is ordid and in target fieldname is Orderid
decode(Order_ID = 1709,lpad(Order_ID,7,'700'),Order_ID)
thank you very much for the helpful i1) In the mapping tab of target column, click on Functions, select Miscellaneous Functions category, you can find decode function in it. Lpad can be found in String functions category.
OR
2) You can directly script this or paste this code at the mapping tab. In this case, remove the Order_ID from the script wherever used, drag and drop this column from the input schema of Query transform to avoid the syntax error.
Regards,
Suneer -
Using Like Operator in a decode function
Hi,
I am trying to find out if I can use the like operator in a decode function
like:
select decode(1234,like '%123%','123 is a match') from dual;
this reults in error ORA-00936: missing expression
is there any way to make this work?
thank youSQL> ed
Wrote file afiedt.buf
1 WITH tbl AS (SELECT '201aaa' dt FROM DUAL UNION ALL
2 SELECT '123bbb' dt FROM DUAL UNION ALL
3 SELECT '567ccc' dt FROM DUAL UNION ALL
4 SELECT 'ab123ddd' dt FROM DUAL
5 )
6 SELECT dt,CASE WHEN dt like '%123%' THEN 'Match'
7 ELSE 'Not Matched'
8 END With_case
9 ,DECODE(REGEXP_SUBSTR(dt,'123'),NULL,'Not Match','Match') With_Regexp
10 ,DECODE(INSTR(dt,'123'),0,'Not Match','Match') With_Instr
11 ,DECODE(REPLACE(dt,'123'),dt,'Not Match','Match') With_Replace
12* FROM tbl
SQL> /
DT WITH_CASE WITH_REGE WITH_INST WITH_REPL
201aaa Not Matched Not Match Not Match Not Match
123bbb Match Match Match Match
567ccc Not Matched Not Match Not Match Not Match
ab123ddd Match Match Match MatchEdited by: Saubhik on Jul 26, 2010 5:24 AM
Edited by: Saubhik on Jul 26, 2010 5:40 AM
Edited by: Saubhik on Jul 26, 2010 5:40 AM -
Decode function issue / problem ..
Dear Sir / Madam,
Thanks for your understanding.
Right now I am facing a unique problem.
I am using decode function in a select statement. The columns are dynamic some columns are of type number and some are varchar datatypes. I want to apply decode function for every column irrespective of datatype.
What i am finding difficult is if the column is a number datatype , the decode funciton is working good but if the column datatype is varchar or char datatype then i am getting ..the error ..
report error:
ORA-01722: invalid number
here's the decode function..
decode (CHAI.EVNDRIVE,
-800000000000000,'.A',
-700000000000000, '.B',
-600000000000000 ,'.C',
-500000000000000 , '.D',
-400000000000000 , '.E',
-300000000000000 , '.F',
-200000000000000, '.G',
-100000000000000 , '.H',
-1000000000, '.R' ,CHAI.EVNDRIVE ) EVNDRIVE
how to use the above decode function irrespective of datatype..
pls let me know how to over come this kind of scenario.
is their a way to find whether the column datatype is number or char , so that i can check the column datatype before the decode funciton is applied ..
thanks ..
kumarYou can try ,
This is a "cheap and dirty" solution,
but it should work (if CHAI.EVNDRIVE is varchar2):
decode (CHAI.EVNDRIVE,
'-800000000000000','.A',
'-700000000000000', '.B',
'-600000000000000' ,'.C',
'-500000000000000' , '.D',
'-400000000000000' , '.E',
'-300000000000000' , '.F',
'-200000000000000', '.G',
'-100000000000000' , '.H',
'-1000000000', '.R' ,CHAI.EVNDRIVE ) EVNDRIVELev -
I am in need of a URL decode function. Can not find one in owa_utl, htp or htf. Is there one available please?
Can you define "URL decode function"? Given the URL for this page
URL Decode function
what do you want the function to do?
Justin -
Hello Friends,
I have a query that has different columns and I am not sure what the data type of each column is ...
I want to use decode function which displays the following if the value of the column is like this ..
if the value of column is -714E ie -700000000000000 then display as .A
if the value of column is -814E ie -800000000000000 then display as .B
NOTE ; don't know which column is having the value - and i don't know the data type of the column is ..
got to use the decode function for all the columns selected ..
I want to use decode function pls let me know how to write for this kind of requirement.
appreciate your help in this rgds.
thanks/kumarDear Sir / Madam,
Thanks for your understanding.
Right now I am facing a unique problem.
I am using decode function in a select statement. The columns are dynamic some columns are of type number and some are varchar datatypes. I want to apply decode function for every column irrespective of datatype.
What i am finding difficult is if the column is a number datatype , the decode funciton is working good but if the column datatype is varchar or char datatype then i am getting ..
here's the decode function..
decode (CHAI.EVNDRIVE,
-800000000000000,'.A',
-700000000000000, '.B',
-600000000000000 ,'.C',
-500000000000000 , '.D',
-400000000000000 , '.E',
-300000000000000 , '.F',
-200000000000000, '.G',
-100000000000000 , '.H',
-1000000000, '.R' ,CHAI.EVNDRIVE ) EVNDRIVE
report error:
ORA-01722: invalid number
pls let me know how to over come this kind of scenario.
is their a way to find whether the column datatype is number or char , so that i can check the column datatype before the decode funciton is applied ..
thanks ..
kumar
Maybe you are looking for
-
Printing on Pre-printed stationary from XML Publisher
Hi, I have a requirement where a report is to be printed on pre-printed stationary from XML Publisher. The stationary would be NCR paper and has to be printed from a dot matrix printer. My first question is whether report generated from XMLP can be p
-
I updated to iOS 7 last might after being prompted by Apple. This caused me to lose many useful features of my iPad2. First I find that Siri has disappeared. When I contacted Apple support, the guy who took my serial # and model # verified things on
-
How do I download a SD movie to my iPad that I have purchased in HD?
Change version of a move I have purchased from HD to SD on my I pad to save space when travelling.
-
Can read TEDS in MAX but not with DAQmx VIs
Hi, I have a cdaq 9181 with a 9234 accelerometer module. I have 3 teds equipped accelerometers connected to ai0, ai1, and ai2 repectively. In MAX, when I reserve the chassis I can read all three teds, no errors. When I do the same thing in labview
-
Migrating to SAP Web AS - HibernateException: Errors in named queries
Hi folks! We are migrating our web application to SAP Web AS (Netweaver CE SR5) but we are having some problems with hibernate: org.hibernate.HibernateException: Errors in named queries (see the stack below). It´s important to point out that this sam