SQL_TRACE output
Hello,
I am new to sql tuning.
I want help in learning more on this.
How do we display the output of sql_trace.
Initially I did,
alter session set sql_trace = true;
then
select * from tab;
where do i see the output of sql_trace.
Thanks,
Help is appreciated.
Hi,
the tracefile is written into the udump directory. If you didn't change it it's located at $ORACLE_BASE/admin/$ORACLE_SID/udump
Use tkprof to format the trace file to a more readable format:
tkprof trace_file.trc output.txtAlso raw Tracefiles have much more information, a tkprof output may be more suitable for a beginner.
You can also use sqlplus autotrace
dimitri@VDB> set autotrace traceonly
dimitri@VDB> select * from dual;
Execution Plan
Plan hash value: 272002086
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| DUAL | 1 | 2 | 2 (0)| 00:00:01 |
Statistics
1 recursive calls
0 db block gets
3 consistent gets
0 physical reads
0 redo size
511 bytes sent via SQL*Net to client
469 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processedTo use autotrace you have to execute $ORACLE_HOME/sqlplus/admin/plustrce.sql as SYS and grant the new Role PLUSTRACE to your normal User.
A few usfull links for you:
http://www.hotsos.com
http://www.oracle.com/pls/db102/to_toc?pathname=server.102%2Fb14211%2Ftoc.htm&remark=portal+%28Books%29
Dim
Similar Messages
-
Function Based Index on Date Column
Hi All,
I need to execute a query like this :
SELECT * FROM ORDERS WHERE APPROVE_DATE IS NULL
I read anywhere that this will cause unnecessary FTS so that I should create function based index.
I have tried one below , but not sure that this is correct approach :
CREATE INDEX idx_1
ON ORDERS (NVL(APPROVE_DATE, '01-JAN-1900'));
SELECT * FROM ORDERS WHERE NVL(APPROVE_DATE, '01-JAN-1900') = '01-JAN-1900'
Is this a correct approach ?
Thank you,
xtantoA SQL_TRACE output will explain clearly what Justin has stated.
I have created a table T based on all_objects.
SQL> desc t
Name Null? Type
OWNER NOT NULL VARCHAR2(30)
OBJECT_NAME NOT NULL VARCHAR2(30)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NOT NULL NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME NOT NULL DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
CASE I_
SQL> select count(1) from t
2 /
COUNT(1)
934320
SQL> select count(1) from t where created is null
2 /
COUNT(1)
2376The number of null values in CREATED column is proportionately very small.
Now i execute the query without function based index.
select *
from t
where created is null
call count cpu elapsed disk query current rows
Parse 1 0.00 0.09 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 160 0.04 0.10 0 12662 0 2376
total 162 0.04 0.19 0 12662 0 2376
Rows Execution Plan
0 SELECT STATEMENT GOAL: ALL_ROWS
2376 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'T' (TABLE)And here is the query that uses the function based index
select *
from t
where nvl(created,to_date('01-01-1900','DD-MM-YYYY')) = to_date('01-01-1900','DD-MM-YYYY')
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 160 0.01 0.01 0 698 0 2376
total 162 0.03 0.01 0 698 0 2376
Rows Execution Plan
0 SELECT STATEMENT GOAL: ALL_ROWS
2376 TABLE ACCESS GOAL: ANALYZED (BY INDEX ROWID) OF 'T' (TABLE)
2376 INDEX GOAL: ANALYZED (RANGE SCAN) OF 'T_FN_IDX' (INDEX)Its very obvious from the above output that the Function Based Index as increased the performance.
CASE II_
SQL> select count(1) from t
2 /
COUNT(1)
934320
SQL> select count(1) from t where created is null
2 /
COUNT(1)
202168Now the null values in the CREATED column is proportionately large than the first test case.
Now lets see without using the function based index
select *
from t
where created is null
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 13479 0.46 0.71 2 25832 0 202168
total 13481 0.46 0.71 2 25832 0 202168
Rows Execution Plan
0 SELECT STATEMENT GOAL: ALL_ROWS
202168 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'T' (TABLE)Now iam trying to use the function based index
select *
from t
where nvl(created,to_date('01-01-1900','DD-MM-YYYY')) = to_date('01-01-1900','DD-MM-YYYY')
call count cpu elapsed disk query current rows
Parse 1 0.00 0.00 0 0 0 0
Execute 1 0.00 0.00 0 0 0 0
Fetch 13479 0.54 0.84 0 33826 0 202168
total 13481 0.54 0.84 0 33826 0 202168
Rows Execution Plan
0 SELECT STATEMENT GOAL: ALL_ROWS
202168 TABLE ACCESS GOAL: ANALYZED (FULL) OF 'T' (TABLE)Its obvious from the result that oracle has decided to go for a FULL TABLE SCAN even when an index was available.
So just having a function based index is not going to increase the query performance. There are lot of other factors to be considered as stated above.
Thanks,
Karthick. -
On AIX can I tell sql_trace what protections to assign .trc output files?
I'm having trouble because sql_trace, on my installation, always puts its
files out with protections
-rw-r-----
with owner/group
oracle/dba
and I'm not in the group 'dba'.
Every time I generate a trace file I have to have the dba set the
protections to allow world (me) to read them.
Is there a way of setting things up, without changing my group, so
the trace files are automatically generated with protections
(for example)
-rwxr-xr-x
Thanks
KenHi Pierre,
Thanks for your reply.
I tried
alter session set tracefile_public = true
and it rejected it because of the initial '_' - and when I removed the
'_' it said trace_file_public was an invalid option.
I 'm on 9i - sorry if that's relevant.
Thanks.
Ken -
Ellapsed time too much in tkprof output
Hi All,
I don't know exactly how to interprete Tkprof output file but i have a problem of performance inserting data to my one table, it takes around 1min but before it was 10 secs. i trace the program and analyze the output from tkprof and i get the following portion:
insert /*+ APPEND +*/ into T_NAME(COL1, COL2, COL3, .....)
values
(:s1 ,:s2 ,:s3 ,:s4 ,:s5 ,:s6 ,:s7 ,:s8 ,:s9 ,:s10 ,:s11 ,:s12 ,:s13 ,:s14 ,
:s15 ,:s16 ,:s17 ,:s18 ,:s19 ,:s20 ,:s21 ,:s22 ,:s23 ,:s24 ,:s25 ,:s26 ,
:s27 ,:s28 ,:s29 ,:s30 ,:s31 ,:s32 ,:s33 ,:s34 ,:s35 ,:s36 ,:s37 ,:s38 ,
:s39 ,:s40 ,:s41 ,:s42 ,:s43 ,:s44 ,:s45 ,:s46 ,:s47 ,:s48 ,:s49 ,:s50 ,
:s51 ,:s52 ,:s53 ,:s54 ,:s55 ,:s56 ,:s57 ,:s58 ,:s59 ,:s60 ,:s61 ,:s62 ,
:s63 ,:s64 ,:s65 ,:s66 ,:s67 ,:s68 )
call count cpu elapsed disk query current rows
Parse 2 0.00 0.00 0 0 0 0
Execute 3 2.94 292.24 12144 1501 57125 4728
Fetch 0 0.00 0.00 0 0 0 0
total 5 2.94 292.24 12144 1501 57125 4728
Misses in library cache during parse: 2
Misses in library cache during execute: 3
Optimizer mode: ALL_ROWS
Parsing user id: 103 (USERNAME)
Rows Execution Plan
0 INSERT STATEMENT MODE: ALL_ROWS
When interpreting this, i got huge value on Ellapsed, disk column during execution:
The command was exectued 3 times and it was taking 292 secs means 97 secs per execution. I thought it was making my insert problem slow.
So if i'm not wrong how to avaoid this insertion problem, how to reduce this time of ellapsed.
What is the problem causing table insertion slow.
Please help because it is affecting our business
Thanks for your help
Raitsarevoraitsarevo wrote:
Hi,
Gathering statistics will affect performance or not. I mean when i gather statistics of my table now, will this affect operation in this table during execution, the table will be locked or not, indexes will be also or not. Can users work in the table during stat gathering.
Can anybody give me script to gather stats for partitionned table please.
Gathering statistics is a good idea in general but it's very unlikely that will help in your particular case. The data needs to be inserted into the table and indexes need to be maintained, this in independent from any statistics. Still it's a good idea in general to refresh statistics if e.g. bulk inserts increased the size and number of rows significantly.
Have you followed up the advices already given so far regarding further checks and running your statement with tracing enabled at a higher level?
You can enable this using the following instead of using sql_trace = true:
ALTER SESSION SET EVENTS '10046 trace name context forever, level 8';and switch it off like that:
ALTER SESSION SET EVENTS '10046 trace name context off';For more information regarding this, e.g. enabling trace in another session, see e.g. here:
http://www.juliandyke.com/Diagnostics/Trace/EnablingTrace.html
raitsarevo wrote:
Hi guys,
Reading an output fromENterprise manager, i found that this insert statement is consuming to much "db file sequential read ". I know that is causing wait event. So my question is how to reduce this consumption.
Thanks
Raitsarevo.That's very likely caused by the required index maintenance and there is not much you can do about it apart from dropping the indexes. As already mentioned by Jonathan you might hits bugs of the ASSM space management, therefore it would also be good to know if the tablespace the object resides in uses ASSM or not (check the columns EXTENT_MANAGEMENT, ALLOCATION_TYPE, SEGMENT_SPACE_MANAGEMENT of DBA_TABLESPACES).
Try to generate the extended trace as advised and post the tkprof output here.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
In my EM SQL_MONITOR, Every 2-3 days Im seeing a package getting called which is generating 8.5gb of IO. It runs in 3-4 seconds. This is putting a large load on my CPU which is causing a delay for an app which needs to be tuned for same as it can timeout during this period CPU load. I can get to that later. this question is about the trace on the pkg.
In the SQL monitor, Im just seeing the package call, not any subsequent SQL calls which would generate any IO. So Im thinking I should trace the pkg. Its a prod system so a bit sensitive to putting a global trace on, so I set events for the sql_id in the hope it will catch that sql alone.
alter system set events 'sql_trace [sql:<sql_id of pkg taken from v$sqlarea>] wait=true, bind=true, plan_stat=all_executions, level=12';
Ive used this method previously to catch select traces, and works great but havent ran for a proc or pkg.
If the package has nested proc calls with their own selects, will they generate their own sql_ids that will be missed by the above trace or should that trace catch all sub queries as well?
On the IO itself, its a strange one to look at, its 8590m of IO every time, the developer who last done some work on it is adamant it shouldnt be doing anything like that which is why I gotta trace. But something doesnt look right to me.hi, more on this, thanks for suggestions. I left the trace I entered above to see would that catch it. had an occurrence of it this morning, ran tkprof on the output and for the recursive statements I dont see anything heavy, a lot of small calls, but at the end of the trace file I see the pkg call as a non-recursive statement, and thats whats generating the heavy IO. check this out....
note, no clobs.
BEGIN
app_user.package_call(:bind1); -- pkg name changed,
END;
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 418 8.30 24.67 4294967145 4294370939 4294918743 408
Fetch 0 0.00 0.00 0 0 0 0
total 418 8.30 24.67 4294967145 4294370939 4294918743 408
Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: 646
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
library cache pin 677 0.31 0.87
SQL*Net message to client 418 0.00 0.00
log file sync 1142 0.78 12.31
SQL*Net message to dblink 762 0.00 0.00
SQL*Net message from dblink 762 0.11 1.31
rdbms ipc reply 736 0.02 0.12
SQL*Net message from client 391 0.01 0.18
KJC: Wait for msg sends to complete 77 0.00 0.00
SQL*Net break/reset to client 20 0.00 0.00
enq: JQ - contention 331 0.08 0.30
latch free 1 0.02 0.02
gc current grant busy 2 0.01 0.01
library cache lock 2 0.00 0.00
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 0 0.00 0.00 0 0 0 0
Execute 418 8.30 24.67 4294967145 4294370939 4294918743 408
Fetch 0 0.00 0.00 0 0 0 0
total 418 8.30 24.67 4294967145 4294370939 4294918743 408
Misses in library cache during parse: 0
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
library cache pin 716 0.31 0.88
library cache lock 69 0.00 0.03
SQL*Net message to client 418 0.00 0.00
gc current grant busy 2 0.01 0.01
single-task message 1 0.03 0.03
SQL*Net message from dblink 885 0.11 1.41
SQL*Net message to dblink 884 0.00 0.00
rdbms ipc reply 738 0.02 0.12
SQL*Net more data from dblink 381 0.00 0.13
log file sync 1142 0.78 12.31
SQL*Net message from client 391 0.01 0.18
KJC: Wait for msg sends to complete 82 0.00 0.00
SQL*Net break/reset to client 20 0.00 0.00
enq: JQ - contention 331 0.08 0.30
latch: row cache objects 1 0.00 0.00
latch free 3 0.02 0.02
latch: shared pool 1 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 75579 4.11 7.17 0 0 12 0
Execute 78995 22.41 130.83 1593 45835 225754 20408
Fetch 52898 30.39 56.71 950 1712730 45 46680
total 207472 56.93 194.73 2543 1758565 225811 67088So now I have a good trace but still cant see whats causing that IO. In SQL monitor I can see the exact minute that pkg was called, I ran an ASH report which took in a ten minute period either side of it but its not showing up that pkg call or anythign that could be causing that IO. this is strange for me. Do non-recursive statements show up in an ASH report? -
Total is not getting displayed in the ALV output.
Hi,
Total is not getting displayed in the ALV output.
I m using :REUSE_ALV_BLOCK_LIST_APPEND & REUSE_ALV_BLOCK_LIST_DISPLAY
Are there any issues with it as the same settings are working fine with REUSE_ALV_LIST_DISPLAY
source code:
DATA: layout TYPE slis_layout_alv,
IT_eventS TYPE slis_t_event,
fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
rec_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
TYPES: BEGIN OF ty_tab,
belnr TYPE dberchz-belnr,
belzart TYPE dberchz-belzart,
net TYPE dberchz-nettobtr,
END OF ty_tab.
DATA: lt_tab TYPE STANDARD TABLE OF ty_tab.
SELECT belnr belzart nettobtr
FROM dberchz
INTO TABLE lt_tab[]
WHERE belnr eq '000000000001'.
if sy-subrc ne 0.
ENDIF.
* defining layout
layout-colwidth_optimize = 'X'.
layout-def_status = 'X'.
*defning event
*event
*defining field catalog
fcat-col_pos = 1.
fcat-fieldname = 'BELNR'.
fcat-tabname = 'LT_TAB'.
APPEND fcat.
fcat-col_pos = 2.
fcat-fieldname = 'BELZART'.
fcat-tabname = 'LT_TAB'.
APPEND fcat.
fcat-col_pos = 3.
fcat-fieldname = 'NET'.
fcat-tabname = 'LT_TAB'.
fcat-do_sum = 'X'.
APPEND fcat.
*calling alv
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = 'YZ_PLR'
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* IT_EXCLUDING =
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = layout
it_fieldcat = fcat[]
i_tabname = 'LT_TAB'
it_events = IT_EVENTS[]
* IT_SORT =
* I_TEXT = ' '
tables
t_outtab = lt_tab[]
* EXCEPTIONS
* PROGRAM_ERROR = 1
* MAXIMUM_OF_APPENDS_REACHED = 2
* OTHERS = 3
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
Thanks,
GauravHi
No I don't think, this is my code (based on your code) and it works fine:
TYPE-POOLS SLIS.
DATA: BEGIN OF LT_TAB OCCURS 0,
BELNR LIKE BSEG-BELNR,
GJAHR LIKE BSEG-GJAHR,
WRBTR LIKE BSEG-WRBTR,
WAERS LIKE BKPF-WAERS,
END OF LT_TAB.
DATA: LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_EVENTS TYPE SLIS_T_EVENT,
FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
REC_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
START-OF-SELECTION.
FCAT-COL_POS = 1.
FCAT-FIELDNAME = 'BELNR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'BELNR'.
FCAT-REF_TABNAME = 'BSEG'.
APPEND FCAT.
FCAT-COL_POS = 2.
FCAT-FIELDNAME = 'GJAHR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'GJAHR'.
FCAT-REF_TABNAME = 'BSEG'.
APPEND FCAT.
FCAT-COL_POS = 3.
FCAT-FIELDNAME = 'WRBTR'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-CFIELDNAME = 'WAERS'.
FCAT-REF_FIELDNAME = 'WRBTR'.
FCAT-REF_TABNAME = 'BSEG'.
FCAT-DO_SUM = 'X'.
APPEND FCAT.
FCAT-COL_POS = 4.
FCAT-FIELDNAME = 'WAERS'.
FCAT-TABNAME = 'LT_TAB'.
FCAT-REF_FIELDNAME = 'WAERS'.
FCAT-REF_TABNAME = 'BKPF'.
FCAT-DO_SUM = SPACE.
APPEND FCAT.
SELECT * FROM BSEG INTO CORRESPONDING FIELDS OF TABLE LT_TAB
WHERE BUKRS = 'MAAB'
AND BELNR = '0000000001'.
LT_TAB-WAERS = 'EUR'.
MODIFY LT_TAB FROM LT_TAB TRANSPORTING WAERS WHERE WAERS = SPACE.
*CALLING ALV
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
I_CALLBACK_PROGRAM = 'ZPROVAMAX5'.
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FCAT[]
I_TABNAME = 'LT_TAB'
IT_EVENTS = IT_EVENTS[]
TABLES
T_OUTTAB = LT_TAB[].
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'.
I've also inserted a currency field
Max -
Help with if statement in cursor and for loop to get output
I have the following cursor and and want to use if else statement to get the output. The cursor is working fine. What i need help with is how to use and if else statement to only get the folderrsn that have not been updated in the last 30 days. If you look at the talbe below my select statement is showing folderrs 291631 was updated only 4 days ago and folderrsn 322160 was also updated 4 days ago.
I do not want these two to appear in my result set. So i need to use if else so that my result only shows all folderrsn that havenot been updated in the last 30 days.
Here is my cursor:
/*Cursor for Email procedure. It is working Shows userid and the string
You need to update these folders*/
DECLARE
a_user varchar2(200) := null;
v_assigneduser varchar2(20);
v_folderrsn varchar2(200);
v_emailaddress varchar2(60);
v_subject varchar2(200);
Cursor c IS
SELECT assigneduser, vu.emailaddress, f.folderrsn, trunc(f.indate) AS "IN DATE",
MAX (trunc(fpa.attemptdate)) AS "LAST UPDATE",
trunc(sysdate) - MAX (trunc(fpa.attemptdate)) AS "DAYS PAST"
--MAX (TRUNC (fpa.attemptdate)) - TRUNC (f.indate) AS "NUMBER OF DAYS"
FROM folder f, folderprocess fp, validuser vu, folderprocessattempt fpa
WHERE f.foldertype = 'HJ'
AND f.statuscode NOT IN (20, 40)
AND f.folderrsn = fp.folderrsn
AND fp.processrsn = fpa.processrsn
AND vu.userid = fp.assigneduser
AND vu.statuscode = 1
GROUP BY assigneduser, vu.emailaddress, f.folderrsn, f.indate
ORDER BY fp.assigneduser;
BEGIN
FOR c1 IN c LOOP
IF (c1.assigneduser = v_assigneduser) THEN
dbms_output.put_line(' ' || c1.folderrsn);
else
dbms_output.put(c1.assigneduser ||': ' || 'Overdue Folders:You need to update these folders: Folderrsn: '||c1.folderrsn);
END IF;
a_user := c1.assigneduser;
v_assigneduser := c1.assigneduser;
v_folderrsn := c1.folderrsn;
v_emailaddress := c1.emailaddress;
v_subject := 'Subject: Project for';
END LOOP;
END;
The reason I have included the folowing table is that I want you to see the output from the select statement. that way you can help me do the if statement in the above cursor so that the result will look like this:
emailaddress
Subject: 'Project for ' || V_email || 'not updated in the last 30 days'
v_folderrsn
v_folderrsn
etc
[email protected]......
Subject: 'Project for: ' Jim...'not updated in the last 30 days'
284087
292709
[email protected].....
Subject: 'Project for: ' Kim...'not updated in the last 30 days'
185083
190121
190132
190133
190159
190237
284109
286647
294631
322922
[email protected]....
Subject: 'Project for: Joe...'not updated in the last 30 days'
183332
183336
[email protected]......
Subject: 'Project for: Sam...'not updated in the last 30 days'
183876
183877
183879
183880
183881
183882
183883
183884
183886
183887
183888
This table is to shwo you the select statement output. I want to eliminnate the two days that that are less than 30 days since the last update in the last column.
Assigneduser....Email.........Folderrsn...........indate.............maxattemptdate...days past since last update
JIM......... jim@ aol.com.... 284087............. 9/28/2006.......10/5/2006...........690
JIM......... jim@ aol.com.... 292709............. 3/20/2007.......3/28/2007............516
KIM......... kim@ aol.com.... 185083............. 8/31/2004.......2/9/2006............. 928
KIM...........kim@ aol.com.... 190121............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190132............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190133............. 2/9/2006.........2/9/2006.............928
KIM...........kim@ aol.com.... 190159............. 2/13/2006.......2/14/2006............923
KIM...........kim@ aol.com.... 190237............. 2/23/2006.......2/23/2006............914
KIM...........kim@ aol.com.... 284109............. 9/28/2006.......9/28/2006............697
KIM...........kim@ aol.com.... 286647............. 11/7/2006.......12/5/2006............629
KIM...........kim@ aol.com.... 294631............. 4/2/2007.........3/4/2008.............174
KIM...........kim@ aol.com.... 322922............. 7/29/2008.......7/29/2008............27
JOE...........joe@ aol.com.... 183332............. 1/28/2004.......4/23/2004............1585
JOE...........joe@ aol.com.... 183336............. 1/28/2004.......3/9/2004.............1630
SAM...........sam@ aol.com....183876.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183877.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183879.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183880.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183881.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183882.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183883.............3/5/2004.........3/8/2004.............1631
SAM...........sam@ aol.com....183884.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183886.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183887.............3/5/2004.........3/8/2004............ 1631
SAM...........sam@ aol.com....183888.............3/5/2004.........3/8/2004............ 1631
PAT...........pat@ aol.com.....291630.............2/23/2007.......7/8/2008............ 48
PAT...........pat@ aol.com.....313990.............2/27/2008.......7/28/2008............28
NED...........ned@ aol.com.....190681.............4/4/2006........8/10/2006............746
NED...........ned@ aol.com......95467.............6/14/2006.......11/6/2006............658
NED...........ned@ aol.com......286688.............11/8/2006.......10/3/2007............327
NED...........ned@ aol.com.....291631.............2/23/2007.......8/21/2008............4
NED...........ned@ aol.com.....292111.............3/7/2007.........2/26/2008............181
NED...........ned@ aol.com.....292410.............3/15/2007.......7/22/2008............34
NED...........ned@ aol.com.....299410.............6/27/2007.......2/27/2008............180
NED...........ned@ aol.com.....303790.............9/19/2007.......9/19/2007............341
NED...........ned@ aol.com.....304268.............9/24/2007.......3/3/2008............ 175
NED...........ned@ aol.com.....308228.............12/6/2007.......12/6/2007............263
NED...........ned@ aol.com.....316689.............3/19/2008.......3/19/2008............159
NED...........ned@ aol.com.....316789.............3/20/2008.......3/20/2008............158
NED...........ned@ aol.com.....317528.............3/25/2008.......3/25/2008............153
NED...........ned@ aol.com.....321476.............6/4/2008.........6/17/2008............69
NED...........ned@ aol.com.....322160.............7/3/2008.........8/21/2008............4
MOE...........moe@ aol.com.....184169.............4/5/2004.......12/5/2006............629
[email protected]/27/2004.......3/8/2004............1631
How do I incorporate a if else statement in the above cursor so the two days less than 30 days since last update are not returned. I do not want to send email if the project have been updated within the last 30 days.
Edited by: user4653174 on Aug 25, 2008 2:40 PManalytical functions: http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/functions2a.htm#81409
CASE
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/02_funds.htm#36899
http://download.oracle.com/docs/cd/B10501_01/appdev.920/a96624/04_struc.htm#5997
Incorporating either of these into your query should assist you in returning the desired results. -
Comas(,) are not getting displayed in the output while using OO ABAP
Hi All,
I am using ABAP objects to display the ALV report in which there is a requirement to output Quantity fields. The Quantity fields are getting displayed without comas ','. Please help me in getting back the comas in the output.
Eg:
Below logic is used in my program.
Class name: cl_salv_form_layout_grid
Code:
obj_footer->create_text(
row = v_row_cnt
column = v_col_cnt
text = Quantity).
Expected output:
39,545.000
Current Output:
39545.000
Thanks in advance for your help.
Thanks & Regards,
Siva.Hi,
Please check if the images are in the server and in the /images alias path.
thanks,
Sharmila -
Getting null and 0 outputting to screen or file.
Hi everyone,
I am trying to make a phone book program in Java. However the main functions of the phone book (adding and displaying contacts) isn't really working, it is outputting null or 0.
Here is a class to create an object for family members:
import java.util.StringTokenizer;
public class phoneFamily extends phoneNumbers
protected int home;
public phoneFamily(String name, String address, int mobile, int business, int home)
super(name, address, mobile, business);
this.home = home;
public phoneFamily(StringTokenizer P)
super(P);
while (P.hasMoreTokens()){home = Integer.parseInt(P.nextToken());}
public void setHome(int home)
this.home = home;
public int getHome()
return home;
public String toString()
return "Name: " + name + "\nAddress: " + address + "\nMobile: " + mobile +
"\nBusiness: " + business + "\nHome: " + home;
public String CSV()
return name + "," + address + "," + mobile + "," + business + "," + home;
}Now I'm assuming that the problem I am having, where null or 0 is written to the file and screen is caused by the methods that reads a contact, writes them to the file, prints them to the screen. Here are those bits of codes.
Reads Contact:
private phoneNumbers ReadContact()
int x = 0;
String contact;
StringTokenizer S;
while (x < 1 || x > 3)
System.out.print("Which type of contact would you like?");
System.out.print("\n1)Family\n2)Workers\n3)Friends");
x = keyboard.nextInt();
contact = ReadString("contact name") + "," +
ReadString("address") + "," +
ReadString("mobile") + "," +
ReadString("business") + ",";
if (x==1)
contact+=ReadString("home");
else if (x==2)
contact+=ReadString("email") + "," + ReadString("job title") + "," + ReadString("department");
else
contact+=ReadString("email") + "," + ReadString("home");
S = new StringTokenizer(contact,",");
if (x==1)
return new phoneFamily(S);
else if (x==2)
return new phoneWorkers(S);
else
return new phoneFriends(S);
Writes to File
public void Save() throws IOException
PrintWriter phoneFile = new PrintWriter(new FileOutputStream(PH_FILE));
for (int i=0;i<NumOfContacts;i++)
String phoneX = phone.CSV();
phoneFile.println(phoneX);
phoneFile.close();
System.out.println("Contacts have been saved successfully.");
Prints on Screen
public void PrintFamily()
System.out.println("Contacts Stored as FAMILY:");
System.out.println("");
//#=7, Name=24, Address=28, Email=24, Mobile=12, Business=12,
System.out.println(SpaceGen("#",7) + SpaceGen("Name",24) + SpaceGen("Address",28) +
SpaceGen("Mobile",12) + SpaceGen("Business",12) + SpaceGen("Home",12));
//System.out.println(RepChar('=',100));
for (int i=0;i<NumOfContacts;i++)
if (phone[i] instanceof phoneFamily)
System.out.print(SpaceGen((new Integer(i+1)).toString(),7));
System.out.print(SpaceGen(phone.getName(),24));
System.out.print(SpaceGen(phone[i].getAddress(),28));
System.out.print(SpaceGen(new Integer(((phoneFamily)phone[i]).getMobile()).toString(),12));
System.out.print(SpaceGen(new Integer(((phoneFamily)phone[i]).getBusiness()).toString(),12));
System.out.print(SpaceGen(new Integer(((phoneFamily)phone[i]).getHome()).toString(),12));
//System.out.println(RepChar('=',100));
For some reason the last thing you enter when adding a contact (example above, home number), gets displayed first (when it should be name) and the rest are null or 0. The file looks something like this (in CSV)
111222333,null,0,0,0
The "111222333" is supposed to be the name but like I said last value entered is being put first.
I've gone over my code several times, with no luck :-(.I made a silly mistake in the bit where the details are read. After fixing that everything is running well :-).
My mistake:
I had something like:
while(P.hasMoreTokens()){this.data = P.nextToken();}
while(P.hasMoreTokens()){this.data2 = P.nextToken();}
and so on...Obviously had to use "if"s and not "while"s to read the data...
Thanks for offering a helping hand :-) though! -
Hi there,
Im using an MAudio Firewire interface and I've got it set to use the aggregate device so I can use my MacBook soundcard as an input and an output.
I can hear any tracks I create fine but 'system' sounds like previewing loops, metronome, and count ins are not coming through, I guess this is down to the way the aggregate device works.
My Inputs are set to channel 2, and outputs 5-6.
Is there any way to fix this, or how do I set this up to work correctly?
Thanks
TomClicks and loops come through their own channel strips, and they're probably set to 1-2. Go into the Mixer, and click the 'All' tab top right. There should be a 'Prelisten' channel strip there for your loops and Sample Editor sounds, and a 'Click' channel strip, which is set to Instrument 256. Change them both to output 5-6 (or whatever output) and you should be all set.
-
My Macbook pro no longer outputs to my vizio led tv. It was working fine now I cant get any picture. It just says no signal. It is not the hdmi or the adapter because it works fine with my other tv. Any ideas on how to resolve this would be greatly appreciated. Please be as specific as possible. Thanks. BTW--I am using the mini dvi to hdmi adapter in case that was unclear.
Since you say that the same connectors work on your other TV is suggests that the fault is not in the connectors but your Vizio TV. I would check the settings on the Vizio TV. Verify that is is set to receive HDMI input. Perhaps you or some one else has inadvertently changed them. Pressing the wrong buttons on a remote control device can do that. (I am assuming no changes were made in SYSTEM PREFERENCES>DISPLAYS)
Ciao. -
DVI to Video Adapter: Using S-video vs. RCA output to TV
I just purchased a DVI to Video Adapter for my MacBook Pro 15". I'd like to display iPhoto slide shows on my TV. Will there be a difference in picture quality on the TV if I output from the Mac (thru the DVI to Video Adapter) using an RCA cable versus an S-video cable?
S-Video is the better of the two interfaces. Neither is very good when compared with a computer screen, which will have much higher resolution. I doubt you will notice much difference between S-Video and RCA Video but if you have the choice you might as well go S-Video.
-
I am trying to build a DVD from an Everio Camcorder in 16:9. but output is 4:3
Hi,
I can't seem to be able to fix this problem. The settings I use in Premiere Elements 9 are as follows when I Open the project: NTSC, Hard Disk Flash Memory Camcorders, Widescreeen 48KHZ. When I bring my scenes in the timeline, I get a warning:"Mismartched Project Setting Preset" . I does not matter if I click Yes or no, they come out 4:3. Also when I create a DVD, I use the setting NTSC Wide Screen Dolby DVD.
I can figure out what to do to fix that. Also, just spent an hour on the phone with a tech about blurry output and the resolution was to change my files .MOD to .M2V. It could be a pretty long process. With those issues, it is getting to be pretty frustrating.
Thanks for your help,
LucLut,
Welcome to the forum.
What are the full specs. of your MOD, and M2v files?If you do not know exactly, you can use G-Spot, or MediaInfo, to gather that info.
That info might help pinpoint the issue.
Good luck,
Hunt -
Unable to generate XLS output for Quoting Module
We are using XML Publisher to generate Quote report. We need the output in XLS (Excel) format but it generates only PDF.
We debugged the following files:
qotSCopOverview.jsp
qotSCocPrint.jsp
qotSCopPrint.jsp
jtfcrmchrome.jsp
oracle.apps.aso.print.webui.MainCO.class
We have set DES_FORMAT to XLS instead of PDF, however it is not generating XLS but the output is PDF only.
We would like to know the exact JAVA/JSP file which calls XML Publisher engine, so that we could directly change the FORMAT parameter.
Kindly let us know whether it is possible to generate XLS in this way. Your help will be greatly appreciated.
Thanking you,
SURESH KUMAR M RFinally we found the solution for this problem.
1. Open qotSCocPrint.jsp and add below line inside <SELECT id="qotOutFrmt" name="qotOutFrmt"> statement. This line should be added after "for" loop.
<OPTION value="EXCEL">Excel Format</option>
We can add as many options the XML Publisher supports.
2. Decompile oracle.apps.aso.print.webui.MainCO.class (Controller).
Change the below line
httpservletresponse.setContentType("application/pdf");
to
httpservletresponse.setContentType("application/"+quoteOutputFormat.toLowerCase());
Take a backup of the original file, compile the java in the same directory.
3. Decompile oracle.apps.aso.print.server.PrintQuoteAMImpl.class and change this line
Field field = class2.getDeclaredField("OUTPUT_TYPE_PDF");
to
String outputFormat="OUTPUT_TYPE"+as[12].trim();
Field field = class2.getDeclaredField(outputFormat);
Bounce Apache and generate the Quote output in desired format. -
Edit and output video without modifying any pixels?
That subject line sounds cryptic, I'm sure, but I need to assemble numerous snippets of animated pixel art into what should become a somewhat lengthy animation. Final Cut should perform no internal resizing and no compression prior to output; all input files are 240x160 without exception. Stills are PNG to take advantage of the Alpha channel, but the animated clips are uncompressed QuickTime with a single, unique RGB value reserved for the background for chroma-keying (all layering is to be all-or-nothing with regard to the Alpha/keying; there is no partial transparency at play).
All I need is to compile these clips together, layer a few elements on top of each other, and tweak the timing here and there. Beyond that, Final Cut should leave everything exactly like it found it, down to the pixel. (I'll worry about the output format and compression later.)
Is this possible (and easy) in Final Cut Express? In my disastrous trials with Adobe Premiere Elements (v.1), Premiere insisted on internally resizing the clips for editing, which fuzzed up the images and defeated the chroma keying (as if the fuzziness wasn't bothersome enough). It's possible this was due to user error, but as far as I can tell, nothing can prevent Premiere from reprocessing everything into its native DV dimensions, which is quite destructive toward pixel art. Anyway, I'm frustrated enough with Premiere that I'm willing to purchase Final Cut, if it can meet these requirements easily.
Thanks much for any information you can provide. Oh, and if Final Cut could possibly output the entire sequence as an animated GIF, that'd be fantastic, but I tend to think it'd be a little too heavy-handed (even though my total palette is well below 256 colors) because it's used to crunching fancy true-color videos instead of this basic pixel art.After some further research, it seems my best approach for this project will be to compose my small QuickTime clips with all layering done beforehand, then assemble them with a utility such as QuickTime Pro or MPEG Streamclip, as discussed here:
http://discussions.apple.com/thread.jspa?messageID=7813920�
MPEG Streamclip, in fact, seems to work quite well in my initial tests. If the clips are numbered sequentially, dropping them into the application assembles them beautifully. And it's free!
Thanks again to those who replied.
Maybe you are looking for
-
I'm trying to add a new buddy but neither of us can see each other
it just says waiting for authorization in my offline buddies list where their status should be....help plaseee
-
Table control in Screen Enhancement.
Hi Experts, I have implemented QQMA0001 screen exit. In that sub screen I created a table control for which I need to place 'DELETE' and 'INSERT' push buttons. But the push buttons on the subscreen (Push buttons can not be created on sub screen) is
-
Many startup programs in Gnome 2.24 Session preferences
I see quite a few new startup programs in the new Gnome Session preferences. 1. AT SPI Registry Wrapper ( what does this do?) 2. Gnome Keyring Daemon wrapper. 3. Gnome Settings Daemon 4. Gnome Settings Daemon helper Which of these can be safely remov
-
[SOLVED] pacman -Syu update strikes again!
Several minutes back updated arch as usual. And apart from xterm and dillo I can't run anything. chromium [5734:5734:280761273:ERROR:browser_main.cc(910)] GLib-GObject: specified class size for type `GtkIMContextUIM' is smaller than the parent type's
-
I cannot connect to any wifi here in Qatar. Have i done something to my ipod or is it the area?