Doubt with Function
Hi all,i am trying to create a function as shown below.
SELECT rcv.quantity "Receiving Quantity"
--INTO v_qty (variable)
FROM rcv_shipment_headers rsh,
rcv_shipment_lines rsl,
rcv_transactions rcv
WHERE rsh.receipt_source_code = 'VENDOR'
AND rsh.shipment_num = 'JAN1008' -- p_file_number(parameter to function)
AND rsh.shipment_header_id = rsl.shipment_header_id
AND rcv.organization_id = 81
AND rcv.transaction_type = 'RECEIVE'
AND rsh.shipment_header_id = rcv.shipment_header_id
AND rcv.shipment_line_id = rsl.shipment_line_id;
--AND rsl.item_id = p_item_id;The above query returns two values,but as i assigned a variable to the function i could only get one value.Can someone guide me how to return multiple values from the above query into a variable(v_qty).
Any help is appreciated,
Thanks in advance!!
Suri wrote:
Thanks for correcting me. But I didnt understand completely. Can you please explain me indetail what do you mean by STANDARD ARRAY ? If possible can you post a small script. Thanks a ton in advance.
SQL> declare
2 --// associative array
3 type TArr1 is table of varchar2(10) index by pls_integer;
4
5 --// standard array
6 type TArr2 is table of varchar2(10);
7
8 arr1 TArr1;
9 arr2 TArr2;
10 begin
11 --// associative arrays are name-value pairs
12 arr1(100) := 'name1'; --// 100=name1
13 arr1(1) := 'name2'; --// 1=name2
14
15
16 --// standard arrays are sequential lists
17 --// of values
18 arr2 := new TArr2( 'name1', 'name2' );
19 end;
20 /
PL/SQL procedure successfully completed.
SQL> In the above example, you cannot iterate through the associative array using a sequential number. E.g. the following does not work:
SQL> declare
2 type TArr1 is table of varchar2(10) index by pls_integer;
3 arr1 TArr1;
4 begin
5 arr1(100) := 'name1';
6 arr1(1) := 'name2';
7
8 for i in 1..arr1.Count loop
9 dbms_output.put_line( i||'='||arr1(i) );
10 end loop;
11 end;
12 /
1=name2
declare
ERROR at line 1:
ORA-01403: no data found
ORA-06512: at line 9The reason is that there is no name-value called "+2+" in the array. And name-value "+1+" was the LAST entry in the array too. The first name-value is "+100+".
So it does not make sense to use an associative array as a sequential array - where the 1st item in the array is referenced using 1, the 2nd item is referenced using 2 and so on.
What does make sense is using a standard array instead. As the reference used to access items in the array, is basically the address (offset) of the item in the array. The address of the 1st item in the array is 1. The address of the 2nd item in the array is 2. Etc.
SQL> declare
2 type TArr2 is table of varchar2(10);
3 arr2 TArr2;
4 begin
5 arr2 := new TArr2( 'name1', 'name2' );
6
7 for i in 1..arr2.Count loop
8 dbms_output.put_line( i||'='||arr2(i) );
9 end loop;
10 end;
11 /
1=name1
2=name2
PL/SQL procedure successfully completed.
SQL> And this is exactly what is required for a bulk collection and bulk processing - sequential addressing of items in the array. Not name-value pairs where an item value is addressed by its associated item name.
This is an important difference between the two types of array. And one does not seem to be readily understood by developers, resulting in most usage of associative arrays in PL/SQL being incorrect - especially when used for bulk collection.
Similar Messages
-
Doubt with Implicit Enhacement in SAP ABAP
Dear.
I have the following doubt with the Implicit Enhacement in SAP ABAP created by me in several applications standard-
If I Create an Implicit Enhacement in SAP ABAP for a function module or program standard , when the team basis is doing an upgrade the code abap created in the Implicit Enhacement not is deleted?
I have created several Implicit Enhacement for Applications WD ABAP and FM, but I have this doubt.
http://wiki.sdn.sap.com/wiki/display/ABAP/HowToDoImplicitEnhancement
Thanks a lot in advance.
Carmen G.Hi,
you code will be retain after upgrade. If you have done implicit enhancements doesnt mean your code would get deleted after upgrades.
In some cases you might have to activate your enhancments using SPAU.
Thanks -
Doubt with creation of Model in the application Webdynpro Java
Good Morning,
I have the following doubts with the fields when i am creating a models in WebDynpro Java
Model Package
Source Fólder
Default logical system name for model instances
Default logical system name for RFC metadata
Logical Dictionary
Dictionary Type Package.
Can Help me?
Kind RegardsHi,
Please check this link:
[https://wiki.sdn.sap.com/wiki/display/WDJava/FAQ%20-%20Models%20-%20Adaptive%20Web%20Service]
Thanks and Regards -
Doubts in functional upgradation from 3.x to 7.0.
Hi All,
I have some doubts in functional upgradation from 3.x to 7.0.
After migration of Transfer rules, update rules ( between the ods & cube also) & datasource.
1). Cube & ods have filed which is added like enhanced field, do we have to do anything after migration for that filed.
2). Is the Z object also will get migrated automatically or not ( i have zfield in the datasource).
3). If i have a routines in the trans rules & update rules, what has to be done for these routines
4). How the custom reports, deliverd reports and workbooks will get migrated.
5). Macros in the web templets ( is the macros coding in the web templets also will get migrated auto matically r do we need to rewrite the coding).
6). Is the migration steps are same for the all SD, MM, FI datasources.1. this should not be a problem
2. IO is not needed to be migrated, it is not changed so much between 3x. and 7.x
3. routines & update rules in the trans rules are migrated automatically, see
http://help.sap.com/saphelp_nw70ehp1/helpdata/en/43/f00e2696d24c5fe10000000a155369/frameset.htm
https://wiki.sdn.sap.com/wiki/display/BI/Migrationof3.xobjectstoBI7.0
4. reports are to be migrated manually, see http://wiki.sdn.sap.com/wiki/display/BI/Migrationof3.xBExQueriestoBI7.0-Useful+Tips
5. see https://wiki.sdn.sap.com/wiki/display/BI/QueriesorWorkbooksMigration-ErrorsandFixes
6. in general yes. -
PDF Documents with Functional Buttons - Works for IE and FireFox but not for Chrome and Safari
To all,
Good morning. Our institution developed a PDF document with functional buttons for printing and e-mailing. When the document is viewed via Internet Explorer and Firefox, the functional buttons work as expected. However if the document is viewed via Chrome and Safari, the functional buttons do not work. The workaround for those who are using Chrome and Safari, the PDF document needs to be saved to their local drive before the functional buttons work.
Has anyone experienced this issue before? If yes, what was your solution other than the workaround.
Thanks.
Babylon5Here's how to configure your browser to run Adobe Reader: http://helpx.adobe.com/acrobat/using/display-pdf-browser-acrobat-xi.html
-
Scaleability with Functions in SQL queries
Hi,
In one of our applications we have many views that use a packaged function in the where clause to filter data. This function uses a SYS_CONTEXT() to set and get values. There are couple of issues while using this approach:
1/ The deterministic function doesn't allow any scability with PQ-server.
2/ Another issue with this function and also the SYS_CONTEXT-function, they manuipulate the estimated CBO-statistics.
CREATE TABLE TAB_I
COLUMN1 NUMBER(16, 0) NOT NULL
, COLUMN2 VARCHAR2(20)
, CONSTRAINT TAB_I_PK PRIMARY KEY
COLUMN1
ENABLE
CREATE TABLE TAB_V
I_COL1 NUMBER(16,0) NOT NULL ENABLE,
VERSION_ID NUMBER(16,0) NOT NULL ENABLE,
CRE_DATIM TIMESTAMP (6) NOT NULL ENABLE,
TERM_DATIM TIMESTAMP (6) NOT NULL ENABLE,
VERSION_VALID_FROM DATE NOT NULL ENABLE,
VERSION_VALID_TILL DATE NOT NULL ENABLE,
CONSTRAINT TAB_V_PK PRIMARY KEY (I_COL1, VERSION_ID) USING INDEX NOCOMPRESS LOGGING ENABLE,
CONSTRAINT COL1_FK FOREIGN KEY (I_COL1) REFERENCES TAB_I (COLUMN1) ENABLE
CREATE OR REPLACE
PACKAGE app_bitemporal_rules IS
FUNCTION f_knowledge_time RETURN TIMESTAMP DETERMINISTIC;
END app_bitemporal_rules;
create or replace
PACKAGE BODY app_bitemporal_rules IS
FUNCTION f_knowledge_time RETURN TIMESTAMP DETERMINISTIC IS
BEGIN
RETURN TO_TIMESTAMP(SYS_CONTEXT ('APP_USR_CTX', 'KNOWLEDGE_TIME'),'DD.MM.YYYY HH24.MI.SSXFF');
END f_knowledge_time;
END app_bitemporal_rules;
explain plan for select *
FROM tab_i
JOIN tab_v
ON tab_i.column1 = tab_v.i_col1
AND app_bitemporal_rules.f_knowledge_time BETWEEN tab_v.CRE_DATIM AND tab_v.TERM_DATIM
where tab_i.column1 = 11111;
select * from table(dbms_xplan.display);
Plan hash value: 621902595
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 95 | 5 (0)| 00:00:06 |
| 1 | NESTED LOOPS | | 1 | 95 | 5 (0)| 00:00:06 |
| 2 | TABLE ACCESS BY INDEX ROWID| TAB_I | 1 | 25 | 1 (0)| 00:00:02 |
|* 3 | INDEX UNIQUE SCAN | TAB_I_PK | 1 | | 1 (0)| 00:00:02 |
|* 4 | TABLE ACCESS FULL | TAB_V | 1 | 70 | 4 (0)| 00:00:05 |
Predicate Information (identified by operation id):
3 - access("TAB_I"."COLUMN1"=11111)
4 - filter("TAB_V"."I_COL1"=11111 AND
"TAB_V"."CRE_DATIM"<="APP_BITEMPORAL_RULES"."F_KNOWLEDGE_TIME"() AND
"TAB_V"."TERM_DATIM">="APP_BITEMPORAL_RULES"."F_KNOWLEDGE_TIME"())
Note
- 'PLAN_TABLE' is old version
- dynamic sampling used for this statement (level=2)
explain plan for select *
FROM tab_i
JOIN tab_v
ON tab_i.column1 = tab_v.i_col1
AND '10-OCT-2011' BETWEEN tab_v.CRE_DATIM AND tab_v.TERM_DATIM
where tab_i.column1 = 11111;
select * from table(dbms_xplan.display);
Plan hash value: 621902595
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 256 | 24320 | 5 (0)| 00:00:06 |
| 1 | NESTED LOOPS | | 256 | 24320 | 5 (0)| 00:00:06 |
| 2 | TABLE ACCESS BY INDEX ROWID| TAB_I | 1 | 25 | 1 (0)| 00:00:02 |
|* 3 | INDEX UNIQUE SCAN | TAB_I_PK | 1 | | 1 (0)| 00:00:02 |
|* 4 | TABLE ACCESS FULL | TAB_V | 256 | 17920 | 4 (0)| 00:00:05 |
Predicate Information (identified by operation id):
3 - access("TAB_I"."COLUMN1"=11111)
4 - filter("TAB_V"."I_COL1"=11111 AND "TAB_V"."CRE_DATIM"<=TIMESTAMP'
2011-10-10 00:00:00.000000000' AND "TAB_V"."TERM_DATIM">=TIMESTAMP' 2011-10-10
00:00:00.000000000')
Note
- 'PLAN_TABLE' is old version
- dynamic sampling used for this statement (level=2) As can be seen in the second plan the cardinality has been guessed correctly, but not in the first case.
I have also tried with:
ASSOCIATE STATISTICS WITH packages app_bitemporal_rules DEFAULT COST (1000000/*246919*/,1000,0) DEFAULT SELECTIVITY 50;
But, this just leads to a increased cost, but no change in cardinality.
The (1) problem gets solved if I directly use "TO_TIMESTAMP(SYS_CONTEXT ('APP_USR_CTX', 'KNOWLEDGE_TIME'),'DD.MM.YYYY HH24.MI.SSXFF')" in the where clause. But am not able to find a solution for the (2) issue.
Can you please help.
Regards,
Vikram RHi Vikram,
On the subject of using [url http://download.oracle.com/docs/cd/E11882_01/server.112/e26088/statements_4006.htm#i2115932]ASSOCIATE STATISTICS, having done a little investigation on 11.2.0.2, I'm having trouble adjusting selectivity via "associate statististics ... default selectivity" but no problems with adjusting default cost.
I've also tried to do the same using an interface type and am running into other issues.
It's not functionality that I'm overly familiar with as I try to avoid/eliminate using functions in predicates.
Further analysis/investigation required.
Including test case of what I've done so far in case anyone else wants to chip in.
SQL> select * from v$version;
BANNER
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE 11.2.0.2.0 Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SQL> drop table t1;
Table dropped.
SQL>
SQL> create table t1
2 as
3 select rownum col1
4 from dual
5 connect by rownum <= 100000;
Table created.
SQL>
SQL> exec dbms_stats.gather_table_stats(USER,'T1');
PL/SQL procedure successfully completed.
SQL>
SQL> create or replace function f1
2 return number
3 as
4 begin
5 return 1;
6 end;
7 /
Function created.
SQL>
SQL> create or replace function f2 (
2 i_col1 in number
3 )
4 return number
5 as
6 begin
7 return 1;
8 end;
9 /
Function created.
SQL> Created one table with 100000 rows.
Two functions - one without arguments, one with (for later).
With no associations:
SQL> select * from user_associations;
no rows selected
SQL> Run a statement that uses the function:
SQL> select count(*) from t1 where col1 >= f1;
COUNT(*)
100000
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID gm7ppkbzut114, child number 0
select count(*) from t1 where col1 >= f1
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 139 (100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 139 (62)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F1"())
19 rows selected.
SQL> Shows that default selectivity of 5% for an equality predicate against function.
Let's try to adjust the selectivity using associate statistics - the argument for selectivity should be a percentage between 0 and 100:
(turning off cardinality feedback for clarity/simplicity)
SQL> alter session set "_optimizer_use_feedback" = false;
Session altered.
SQL>
SQL> ASSOCIATE STATISTICS WITH FUNCTIONS f1 default selectivity 100;
Statistics associated.
SQL> select count(*) from t1 where col1 >= f1;
COUNT(*)
100000
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID gm7ppkbzut114, child number 1
select count(*) from t1 where col1 >= f1
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 139 (100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 139 (62)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F1"())
19 rows selected.
SQL> Didn't make any difference to selectivity.
An excerpt from a 10053 trace file had the following:
** Performing dynamic sampling initial checks. **
** Dynamic sampling initial checks returning FALSE.
No statistics type defined for function F1
No default cost defined for function F1So, crucially what's missing here is a clause saying:
No default selectivity defined for function F1But there's no other information that I could see to indicate why it should be discarded.
Moving on, adjusting the cost does happen:
SQL>exec spflush;
PL/SQL procedure successfully completed.
SQL> disassociate statistics from functions f1;
Statistics disassociated.
SQL>
SQL> ASSOCIATE STATISTICS WITH FUNCTIONS f1 default selectivity 100 default cost (100,5,0);
Statistics associated.
SQL> select count(*) from t1 where col1 >= f1;
COUNT(*)
100000
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID gm7ppkbzut114, child number 0
select count(*) from t1 where col1 >= f1
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 500K(100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 500K (1)| 00:41:41 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F1"())
19 rows selected.
SQL> And we see the following in a 10053:
No statistics type defined for function F1
Default costs for function F1 CPU: 100, I/O: 5So, confirmation that default costs for function were found and applied but nothing else about selectivity again.
I wondered whether the lack of arguments for function F1 made any difference, hence function F2.
Didn't seem to:
Vanilla:
SQL> select count(*) from t1 where col1 >= f2(col1);
COUNT(*)
100000
SQL>
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID 2wxw32wadgc1v, child number 0
select count(*) from t1 where col1 >= f2(col1)
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 139 (100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 139 (62)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F2"("COL1"))
19 rows selected.
SQL> Plus association:
SQL>exec spflush;
PL/SQL procedure successfully completed.
SQL>
SQL> associate statistics with functions f2 default selectivity 90 default cost (100,5,0);
Statistics associated.
SQL> select count(*) from t1 where col1 >= f2(col1);
COUNT(*)
100000
SQL>
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID 2wxw32wadgc1v, child number 0
select count(*) from t1 where col1 >= f2(col1)
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 500K(100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 500K (1)| 00:41:41 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F2"("COL1"))
19 rows selected.
SQL> Just to confirm associations:
SQL> select * from user_associations;
OBJECT_OWNER OBJECT_NAME COLUMN_NAME OBJECT_TY
STATSTYPE_SCHEMA STATSTYPE_NAME DEF_SELECTIVITY DEF_CPU_COST DEF_IO_COST DEF_NET_COST
INTERFACE_VERSION MAINTENANCE_TY
RIMS F2 FUNCTION
90 100 5
0 USER_MANAGED
RIMS F1 FUNCTION
100 100 5
0 USER_MANAGED
SQL> So.... started thinking about whether using an interface type would help?
SQL> CREATE OR REPLACE TYPE test_stats_ot AS OBJECT
2 (dummy_attribute NUMBER
3 ,STATIC FUNCTION ODCIGetInterfaces (
4 ifclist OUT SYS.ODCIObjectList
5 ) RETURN NUMBER
6 ,STATIC FUNCTION ODCIStatsSelectivity (
7 pred IN SYS.ODCIPredInfo,
8 sel OUT NUMBER,
9 args IN SYS.ODCIArgDescList,
10 strt IN NUMBER,
11 stop IN NUMBER,
12 --i_col1 in NUMBER,
13 env IN SYS.ODCIEnv
14 ) RETURN NUMBER
15 --,STATIC FUNCTION ODCIStatsFunctionCost (
16 -- func IN SYS.ODCIPredInfo,
17 -- cost OUT SYS.ODCICost,
18 -- args IN SYS.ODCIArgDescList,
19 -- i_col1 in NUMBER,
20 -- env IN SYS.ODCIEnv
21 -- ) RETURN NUMBER
22 );
23 /
Type created.
SQL> CREATE OR REPLACE TYPE BODY test_stats_ot
2 AS
3 STATIC FUNCTION ODCIGetInterfaces (
4 ifclist OUT SYS.ODCIObjectList
5 ) RETURN NUMBER
6 IS
7 BEGIN
8 ifclist := sys.odciobjectlist(sys.odciobject('SYS','ODCISTATS2'));
9 RETURN odciconst.success;
10 END;
11 STATIC FUNCTION ODCIStatsSelectivity
12 (pred IN SYS.ODCIPredInfo,
13 sel OUT NUMBER,
14 args IN SYS.ODCIArgDescList,
15 strt IN NUMBER,
16 stop IN NUMBER,
17 --i_col1 in NUMBER,
18 env IN SYS.ODCIEnv)
19 RETURN NUMBER
20 IS
21 BEGIN
22 sel := 90;
23 RETURN odciconst.success;
24 END;
25 -- STATIC FUNCTION ODCIStatsFunctionCost (
26 -- func IN SYS.ODCIPredInfo,
27 -- cost OUT SYS.ODCICost,
28 -- args IN SYS.ODCIArgDescList,
29 -- i_col1 in NUMBER,
30 -- env IN SYS.ODCIEnv
31 -- ) RETURN NUMBER
32 -- IS
33 -- BEGIN
34 -- cost := sys.ODCICost(10000,5,0,0);
35 -- RETURN odciconst.success;
36 -- END;
37 END;
38 /
Type body created.
SQL> But this approach is not happy - perhaps not liking the function with no arguments?
SQL> disassociate statistics from functions f1;
Statistics disassociated.
SQL> ASSOCIATE STATISTICS WITH FUNCTIONS f1 USING test_stats_ot;
Statistics associated.
SQL> select count(*) from t1 where col1 >= f1;
select count(*) from t1 where col1 >= f1
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-06550: line 12, column 22:
PLS-00103: Encountered the symbol "ÀÄ" when expecting one of the following:
) , * & = - + < / > at in is mod remainder not rem =>
<an exponent (**)> <> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
SQL> So, back to F2 again (uncommenting argument i_col1 in ODCIStatsSelectivity):
SQL> disassociate statistics from functions f1;
Statistics disassociated.
SQL> disassociate statistics from functions f2;
Statistics disassociated.
SQL> ASSOCIATE STATISTICS WITH FUNCTIONS f2 USING test_stats_ot;
Statistics associated.
SQL> select count(*) from t1 where col1 >= f2(col1);
COUNT(*)
100000
SQL> select * from table(dbms_xplan.display_cursor);
PLAN_TABLE_OUTPUT
SQL_ID 2wxw32wadgc1v, child number 0
select count(*) from t1 where col1 >= f2(col1)
Plan hash value: 3724264953
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 139 (100)| |
| 1 | SORT AGGREGATE | | 1 | 5 | | |
|* 2 | TABLE ACCESS FULL| T1 | 5000 | 25000 | 139 (62)| 00:00:01 |
Predicate Information (identified by operation id):
2 - filter("COL1">="F2"("COL1"))
19 rows selected.
SQL> Nothing obviously happening.
You'll note also in my interface type implementation that I commented out a declaration of ODCIStatsFunctionCost.
This post is probably already too long already so I've skipped some of the detail.
But when ODCIStatsFunctionCost was used with function F2, I presume I've made a mistake in the implementation because I had an error in the 10053 trace as follows:
Calling user-defined function cost function...
predicate: "RIMS"."F2"("T1"."COL1")
declare
cost sys.ODCICost := sys.ODCICost(NULL, NULL, NULL, NULL);
arg0 NUMBER := null;
begin
:1 := "RIMS"."TEST_STATS_OT".ODCIStatsFunctionCost(
sys.ODCIFuncInfo('RIMS',
'F2',
NULL,
1),
cost,
sys.ODCIARGDESCLIST(sys.ODCIARGDESC(2, 'T1', 'RIMS', '"COL1"', NULL, NULL, NULL))
, arg0,
sys.ODCIENV(:5,:6,:7,:8));
if cost.CPUCost IS NULL then
:2 := -1.0;
else
:2 := cost.CPUCost;
end if;
if cost.IOCost IS NULL then
:3 := -1.0;
else
:3 := cost.IOCost;
end if;
if cost.NetworkCost IS NULL then
:4 := -1.0;
else
:4 := cost.NetworkCost;
end if;
exception
when others then
raise;
end;
ODCIEnv Bind :5 Value 0
ODCIEnv Bind :6 Value 0
ODCIEnv Bind :7 Value 0
ODCIEnv Bind :8 Value 4
ORA-6550 received when calling RIMS.TEST_STATS_OT.ODCIStatsFunctionCost -- method ignoredThere was never any such feedback about ODCIStatsSelectivity.
So, in summary, more questions than answers.
I'll try to have another look later. -
Doubt with a Insert query!
hi friends i have a doubt with a query in sql here is the following code.
INSERT INTO
(SELECT employee_id, last_name,
email, hire_date, job_id, salary,
department_id
FROM employees
WHERE department_id = 50)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);The same insert statement can be achieved with
INSERT INTO EMPLOYEES (employee_id, last_name,
email, hire_date, job_id, salary,
department_id)
VALUES (99999, 'Taylor', 'DTAYLOR',
TO_DATE('07-JUN-99', 'DD-MON-RR'),
'ST_CLERK', 5000, 50);What advantage does the first query have over the second one.
Thanks in advance to everyone.
Regards,
ManojThose two statements are identical.
However this one would be different:
INSERT INTO
(SELECT employee_id, last_name,
email, hire_date, job_id, salary,
department_id
FROM employees
WHERE department_id = 50
with check option )
VALUES (99999, 'Taylor', 'DTAYLOR', TO_DATE('07-JUN-99', 'DD-MON-RR'), 'ST_CLERK', 5000, 50);The "WITH CHECK OPTION" would guarantee that only employees for department 50 are inserted.
see also:
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#i2066598
Edited by: Sven W. on Mar 17, 2011 7:22 PM - typo correction -
Seqment shrink with function based indexes - 10.2.0.3
I see 10g Rel 2 limiation with function based index while doing segment shrink. Is their a workaround? I tried to drop the function based index before shrink, still shrink is taking several hrs to complete.
Any help is appreciated.
Thanks,
SivaHi,
Analogy: suppose you have 1 million barrels filled with water near 85% maybe less, now you spilled ...say 40% the total water, maybe you have 400,000 empty barrels or the equivalent (here comes the overhead) you are going to concentrate the water in 600,000 barrels and return the empty ones to the "Oracle Server" store, just to reclaim them gradually until you have the starting 1 million barrel.
Our advise: keep the objects as they are, both table and index. Oracle will use released space as efficiently as he can, which is (at that level) better than us.
You're worried about the index space? much better leave it now, that's the structure which may cause the major part of overhead.
Regards
Ignacio
http://oracledisect.blogspot.com -
Financial statement with Functional Area
Dear Experts,
We recently implemented SAP in our company.
One problem we have is that our Financial statements are just on GL, our Management wants to see the Financial statement break up by departments (Cost centers) & Projects.
I beleive that this is possible through Functional areas concept, but I don't know completely on how to configure & maintain Functional areas in order to get the Financial statements with Functional area.
Please guide me a complete configuration step.
Many Thanks.
Sunil.Thanks Alice, but I partially disagree with your input.
What is the benefit of maintaining Functional area in the Cost center master data then.
I have seen some slides of Financial statements with Functional are break up by Cost center categories.
Please give more idea on this.
Thanks
Sunil -
To update Employee Data with Function module
Hi
CRM employee master and HR employee master need to be mapped
for the labor cost posting function to work.
In BP transaction (Change in BP role : Employee),
I could update "Personnel number" and "User Name"
under Identification Tab
now I need to do same job with Function module in report program.
Anybody knows that what Function module should I use ?
I tryed to do it with Function "CRMXIF_PARTNER_SAVE"
but I only succesed to update imformations under Adress tab in BP transaction.
thank you.Use FM BAPI_BUPA_CREATE_FROM_DATA.
Rg,
Harshit -
Personal recruitment How to do new measure with function call Update IT4000
Hi out there and happy new year to forum,
i want to update to implement a recruitment measure (Transaction PB40). I did it already with batch input, but i guess it's much more comfortable to do with funtion module, bapi or calsses.
After choosing the measure, the infogroup will be processed. So i guess, i just have to use the corresponding function modules to update the infotypes in a given sequence. is this suggestion right?
What are these function modules? How to update f.e. IT4000? Does anyone has a coding snippet?
Is it HR_INFOTYPE_OPERATION?
In our Infogroup there are also customer specific infotypes f.e. 9***. Can I use the sap standard function modules for "own implemented" infotypes?
I also appreciate an abap oo pattern or any similar....
Best regards,
TAndy Goris wrote:
But I don't think that it's possible to hire an application completly with function modules (there is no PERNR in the beginning so I would keep the BIM).
The applicants already exists in system, i just want to implement a measure with exact one click!
Otherwise there is a BAPI for applicant_create.
I'm not very expierienced focussing the implementation in pa-recruiting. I'm really looking for a good documentation or anything like that f.e. sap press.
Andy Goris wrote:
... but why would you use the old recruiting database? This is hardly used anymore.
What are the alternatives to it. (I'm not looking forward to upgrade releases or using wd4a or webgui). we are on ecc 6.0 There is already a lot of z-coding in recruitment. We are also using an self implemented e-recruiting approach
Edited by: Timo Ehl on Jan 3, 2012 2:30 PM -
Dear Experts,
I am sure SAP follows the same concepts in BI as just recently i have worked in JasperSoft Talend Open studio.
But i have some doubts with BI.
I created a RFC in ABAP. Used that RFC to bring data for a single day as parameter on to ingres database table .The ingres table is of same schema as of structure output.Finally i find that ingres table is populated after running relevant job.
Now i thought to work twoards report and that worked as well.But still i have doubts.
As i am new to BI ,i dont know what advantage i got by doing this breathless activity.
(1) I would have simply used sap itself to generate report.What was the need to bring to mysql.Load to my server remain same because definitely RFC will be executed nowhere but on server itself.
(2)If daily i have to run the same job ,obviously i could have done same with sap.Same amount of data will be retrieved with
same overheads.
As i said that i am new to BI.Plz explain me about power of BI and what i am missing to conceptualize ?Aditya,
You can definitely use SAP R/3 to generate these issues - the only issues are :
SAP R/3 is an OLTP system
by OLTP system the system is optimized / tuned to be able to do inserts and updates to tables but then the default indices are not tuned for reads ... this might cause report performance issues...
SAPR/3 is not supposed to hold more than 2 years of data at best ( unless your system is small enough ) whereas a BI system can hold and should hold much more information.
Getting the master data descriptions for the data you are reporting upon and that too across languages can be a challenge - whereas it can be better handled in a BI system...
As for extracting large volumes of data you should use the Service API that comes with SAP Bi for better extraction performance ...
some points why you need a BI system..... -
How to copy a generic extractor with function module into a new system?
Dear Gurus,
i would like to know how i can copy a gneric datasource with function module from one system to the target system.
Thank you
CheersHi Anesh,
thank you for replying.
Since the Datasource will have a new new in the new system, i will create a new one.
Create a generic datasource base on the table is not the problem.
My problem is how could i copy the FM in the new system?
If you can help me on that, it will be fine.
Thanks -
Queuename cannot be build with function(while creating invoice VF01) IDoc
Hi all,
I had a problem while posting an invoice with reference to the delivery document . we had configured partner profile with INVOIC02 and extension for that. and maintained Transfer IDocs immediately. queue processing is enabled . before implementing OSS notes it is working fine. after implementing these notes we are getting update termination message and the invoice document is not getting saved. the notes are 0001019483 and 0001280898 .
After implementing notes rule is enabled and in that rule we had given IDOC_QUEUE_SUS_MM. and we had done cofig for that in we85.
the message is like this.
Update was terminated
System ID.... R1Q
Client....... 100
User..... ABOSE
Transaction.. VF01
Update key... 4DF9276AC53F16E6E100800082180442
Generated.... 16.06.2011, 12:43:49
Completed.... 16.06.2011, 12:43:50
Error Info... B1 519: Queuename cannot be build with function:
Please helpme out
Thanks & regards
sreehari pDear Reddy,
This may due to two reasons
1.Itemcategory settings
2.Copy control settings at item level between your sales document type and your billing type ZF3.So fallow these steps you can rectify the issue.
-->You go to the VOV7 transaction then select item category ZAPT TAP then go in to the details of that here you can find the field Billing Relevance maintain this field "B" or "C" if you are doing order related billing.
-->Go to VTFA transaction click on change icon (Top Left Corner)then select your billing type ZF3 and sales order type then click on the item here you select the itemcategory ZAPT TAP then go in to the details screen here you need to enter the copying requirement routines.
Standard routine is 002-item/order related in the Copying requirements field.
Standard routine is 001-Inv.split (sample) in the Data VBRK/VBRP field.
And also check the Header level copy control settings
Maintain these settings then try
I hope it will help you
Regards,
Murali. -
"Replace letters with" function
How to tell Mail to use "Replace letters with" function of Keyboard/text? All other apps are using this!
Thanks,
Matyasyou can create your own replaceString function;
i.e.
http://www.worlddeveloper.org/www/forumtopicview.html?fid=167&categoryId=24&fpn=0
Maybe you are looking for
-
After Latest Mac 10.6.5 Update, Photoshop CS4 Crashes on Startup
I installed the latest Mac OS X 10.6.5 update this morning, and now Photoshop CS4 won't open -- it crashes on startup. Please help! Crash report copied below. Thanks -- Sara Process: Adobe Photoshop CS4 [344] Path: /Applications/
-
Hi, We are busy with a very simple file-to-file scenario using NFS transport protocol. The source directory that I enter was as follows i.e. //xx.xxx.xx.xx/directoryname, but I keep on getting a configuration error on the adapter engine with the foll
-
I have uninstalled and reinstalled but the Creative Cloud app will not install continually console error Mac Yosemite 10.10.1 11/24/14 11:17:47.065 PM Creative Cloud[1510]: objc[1510]: Class HTTPHeader is implemented in both /Applications/Utilities/
-
Opening doc in Internet explorer 8 or 9, results in "?"
This is been happening. Just configured a new hard drive, windows 7 Ultimate 34 bit, still the same problem. When I click a pdf document, mostly bank statements, I get like a windows info box with a big blue question mark on the side. Usually on the
-
Where do I set the "Time Span: Length of Comp" in an Adobe Media Encoder Preset?
Since Adobe is removing H.264 from After Effects, I'm trying to get the workflow set up with AME. However, when I send a comp to AME, it doesn't render the whole comp, just the work area. How can I set it up to automatically render the entire comp, l