Queries on pl/sql tables within a function
hi,
how can i execute regular sql-queries within a function on a pl/sql table which the function has recieved as a parameter ? i have tried quite a bit and always get type mismatches or internal errors. anybody has a good example on this ?
thanks in advance,
stephan
hi,
okay, i will not post the actual code i have, because it won't make too much sense out of the context, but here are the relevant parts...
i have a few object definitions that represent the records of the three tables (two input and one output)...
create type t1 as object (...);
create type t2 as object (...);
create type t3 as object (...);
and a package with the table definitions
create or replace package t_defs as
type tab_t1 is table of t1;
type tab_t2 is table of t2;
type tab_t3 is table of t3;
end t_defs;
and here is a rough sketch what the function should look like later:
CREATE OR REPLACE FUNCTION some_function (
tab1 IN t_defs.tab_t1, tab2 IN t_def.tab_t2)
RETURN t_defs.tab_t3 PIPELINED IS
TYPE refcur IS REF CURSOR;
cur0 refcur;
curr_rec t3 := t3(NULL, ....);
BEGIN
open cur0 for 'here is the statement i could not do';
LOOP
FETCH cur0 INTO curr_rec.....;
EXIT WHEN cur0%NOTFOUND;
. -- (manipulate the record) --
PIPE ROW(curr_rec);
END LOOP;
RETURN;
END;
Similar Messages
-
Inserting rows in PL/SQl table
Hi,
I have a PL/SQl table which i populated through bulk collect and now i am trying to loop through the table (actually quite a few nested loops) ... Now inside one of my loops i might need to insert a new row by splitting field in the existing row in the table. Can I insert the row in the pl/sql table within the loop without affecting the 'FOR i IN tab.first..tab.last' loop ??
Also what would be the index of such a row inserted in the table. Can I access it with tab.last+1 (doesnt look like it can be done if i insert in the various levels of loops).
OR
If I insert the rows insde the nested loops , then I can access the new rows once I close all the loops and open a fresh loop ??. Will the new rows be at the last of the table.
Any help will be appreciated ...user2309906 wrote:
Hi,
I have a PL/SQl table which i populated through bulk collect and now i am trying to loop through the table (actually quite a few nested loops) ... Now inside one of my loops i might need to insert a new row by splitting field in the existing row in the table. Can I insert the row in the pl/sql table within the loop without affecting the 'FOR i IN tab.first..tab.last' loop ??
Also what would be the index of such a row inserted in the table. Can I access it with tab.last+1 (doesnt look like it can be done if i insert in the various levels of loops).
OR
If I insert the rows insde the nested loops , then I can access the new rows once I close all the loops and open a fresh loop ??. Will the new rows be at the last of the table.
Any help will be appreciated ...With an associative array:
SQL> ed
Wrote file afiedt.buf
1 declare
2 type t_arr is table of varchar2(10) index by pls_integer;
3 v_arr t_arr;
4 v_cnt number := 0;
5 begin
6 -- populate the associative array
7 for i in (select ename from emp)
8 loop
9 v_cnt := v_cnt + 1;
10 dbms_output.put_line('Populating: '||i.ename);
11 v_arr(v_cnt) := i.ename;
12 end loop;
13 -- now process the associative array
14 for i in v_arr.first .. v_arr.last
15 loop
16 dbms_output.put_line('Processing: '||i||':'||v_arr(i));
17 if v_arr(i) IN ('KING','TURNER','JAMES') then
18 v_arr(v_arr.last+1) := v_arr(i)||to_char(i);
19 dbms_output.put_line('Added: '||v_arr.last||':'||v_arr(i));
20 end if;
21 end loop;
22 -- now what's in the associative array?
23 for i in v_arr.first .. v_arr.last
24 loop
25 dbms_output.put_line('Result: '||i||':'||v_arr(i));
26 end loop;
27* end;
SQL> /
Populating: SMITH
Populating: ALLEN
Populating: WARD
Populating: JONES
Populating: MARTIN
Populating: BLAKE
Populating: CLARK
Populating: SCOTT
Populating: KING
Populating: TURNER
Populating: ADAMS
Populating: JAMES
Populating: FORD
Populating: MILLER
Processing: 1:SMITH
Processing: 2:ALLEN
Processing: 3:WARD
Processing: 4:JONES
Processing: 5:MARTIN
Processing: 6:BLAKE
Processing: 7:CLARK
Processing: 8:SCOTT
Processing: 9:KING
Added: 15:KING
Processing: 10:TURNER
Added: 16:TURNER
Processing: 11:ADAMS
Processing: 12:JAMES
Added: 17:JAMES
Processing: 13:FORD
Processing: 14:MILLER
Processing: 15:KING9
Processing: 16:TURNER10
Processing: 17:JAMES12
Result: 1:SMITH
Result: 2:ALLEN
Result: 3:WARD
Result: 4:JONES
Result: 5:MARTIN
Result: 6:BLAKE
Result: 7:CLARK
Result: 8:SCOTT
Result: 9:KING
Result: 10:TURNER
Result: 11:ADAMS
Result: 12:JAMES
Result: 13:FORD
Result: 14:MILLER
Result: 15:KING9
Result: 16:TURNER10
Result: 17:JAMES12
PL/SQL procedure successfully completed.With standard array (PL/SQL table):
SQL> ed
Wrote file afiedt.buf
1 declare
2 type t_arr is table of varchar2(10);
3 v_arr t_arr;
4 v_cnt number := 0;
5 begin
6 -- populate the pl/sql table
7 select ename bulk collect into v_arr from emp;
8 -- now process the pl/sql table
9 for i in v_arr.first .. v_arr.last
10 loop
11 dbms_output.put_line('Processing: '||i||':'||v_arr(i));
12 if v_arr(i) = 'KING' then
13 v_arr.extend;
14 v_arr(v_arr.last) := 'PRESIDENT';
15 end if;
16 end loop;
17 -- now what's in the pl/sql table?
18 for i in v_arr.first .. v_arr.last
19 loop
20 dbms_output.put_line('Result: '||i||':'||v_arr(i));
21 end loop;
22* end;
SQL> /
Processing: 1:SMITH
Processing: 2:ALLEN
Processing: 3:WARD
Processing: 4:JONES
Processing: 5:MARTIN
Processing: 6:BLAKE
Processing: 7:CLARK
Processing: 8:SCOTT
Processing: 9:KING
Processing: 10:TURNER
Processing: 11:ADAMS
Processing: 12:JAMES
Processing: 13:FORD
Processing: 14:MILLER
Processing: 15:PRESIDENT
Result: 1:SMITH
Result: 2:ALLEN
Result: 3:WARD
Result: 4:JONES
Result: 5:MARTIN
Result: 6:BLAKE
Result: 7:CLARK
Result: 8:SCOTT
Result: 9:KING
Result: 10:TURNER
Result: 11:ADAMS
Result: 12:JAMES
Result: 13:FORD
Result: 14:MILLER
Result: 15:PRESIDENT
PL/SQL procedure successfully completed.
SQL>So, in answer to your questions...
Inserting additional rows in the array during the loop will effect the "last" value and alter the array. If you need to avoid this effect, store the "last" value in a variable and loop up to that value of the variable.
New rows will generally be additional rows on the end of the array unless you are using associative arrays which will then depend on how you reference the rows in the array. -
Hi all,
I have the following xml file (books1.xml):
<bookstore>
<book>
<BookID>1</BookID>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book>
<BookID>2<BookID>
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book>
<BookID>3<BookID>
<title>XQuery Kick Start</title>
<author>James McGovern</author>
<year>2003</year>
<price>49.99</price>
</book>
<book>
<BookID>4<BookID>
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
In my Microsoft SQL Server 2012 Management Studio, I executed the following SQL Query code:
--XQuery w3schools example using books1.xml in C:\Temp folder
---SQL Query W3books Title
---9 March 2015
USE XML_XQUERY
GO
CREATE TABLE W3Books(
BookID INt Primary Key,
Title VARCHAR(30));
INSERT INTO W3Books (BookID, Title)
SELECT x.book.query('BookID'), value('.', 'INT'),
x.book.query('title'), value('.', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'C:\Temp\books1.xml',
SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('W3Books/book') AS x(book);
SELECT BookID, Title
FROM W3Books;
I got the following error messages:
Msg 195, Level 15, State 10, Line 7
'value' is not a recognized built-in function name.
Msg 156, Level 15, State 1, Line 16
Incorrect syntax near the keyword 'AS'.
I don't know why I got the error of 'value' is not a recognized built-in function name. Please kindly help and tell me what is wrong in my code and how to correct the error.
Thanks, Scott Chang
P. S.
(1) I mimicked the xml file and SQL Qeury code of Import XML File to SQL Table in
http://pratchev.blogspot.com/2008/11/import-xml-file-to-sql-table.html. The xml file and the code of this sample worked in my SSMS 2012 program.
(2) I am learning the "CAST" and "CROSS APPLY" in the Create Instances of XML Data of Microsoft MSDN - it is very abstract to me.Hi Stan210, Thanks for your nice response.
I corrected my xml file as you pointed out.
I made some changes in some code statements of my SQLQueryW3BookTitle.sql as you instructed:
--XQuery w3schools example using books1.xml in C:\Temp folder
---SQL Query W3books Title
---10 March 2015
USE XML_XQUERY
GO
CREATE TABLE W3Books(
BookID INt Primary Key,
Title VARCHAR(30));
INSERT INTO W3Books (BookID, Title)
SELECT x.book.value('/BookID[1]', 'INT'),
x.book.value('/title[1]', 'VARCHAR(30)')
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK 'C:\Temp\books1.xml',SINGLE_BLOB) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('bookstore/book') AS x(book);
SELECT BookID, Title
FROM W3Books;
I executed my revised sql and I got the following Message and Results:
Msg 515, Level 16, State 2, Line 6
Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls. INSERT fails.
The statement has been terminated.
(0 row(s) affected)
Results:
BookID Title
I don't know why I just got the names of columns in Results and the "Cannot insert the value NULL into column 'BookID', table 'XML_XQUERY.dbo.W3Books'; column does not allow nulls, insert fails." in Messages. Please kindly help, advise me
how to correct the errors and respond again.
Many Thanks again,
Scott Chang -
Is there a custom function available which can be used for logging errors captured in a sp during and after execution in a sql table?
Basically we would like to utilize such function in every sp and log errors of each sp in a error log table
MudassarThanks .
I was able to write this however I am thinking I am missing something
CREATE FUNCTION testfunction1()
RETURNS @temp_error TABLE (
id int identity(1,1),
procedure_name varchar(255),
line_number int,
error_number int,
error_message varchar(max),
error_state int,
error_severity int,
occurence_datetime datetime default current_timestamp,
user_name sysname default suser_name(),
login_name sysname default suser_name()
AS
BEGIN
insert @temp_error(procedure_name,line_number,error_number,error_message,error_state,error_severity)
select error_procedure(),error_line(),error_number(),error_message(),error_state(),error_severity()
RETURN;
END;
CREATE TYPE test_type AS TABLE(
id int identity(1,1),
procedure_name varchar(255),
line_number int,
error_number int,
error_message varchar(max),
error_state int,
error_severity int,
occurence_datetime datetime default current_timestamp,
user_name sysname default suser_name(),
login_name sysname default suser_name()
GO
create proc usp_error_test
@test_type AS test_type READONLY
as
begin
begin try
select 1/0
end try
begin catch
select * from testfunction1(@test_type)
end catch
end
Mudassar -
Function returning pl/sql table of dynamic structure
Hi,
I use oracle11g/windows platform.
I have a requirement to be coded like this:
A function to return pl/sql table(cant use ref cursor) whose columns varies everytime it runs i.e.,
means
type pl_tab_type is object(col1 varchar2(1000), col2 varchar2(1000))
type pl_tab is table of pl_tab_type
func f return pl_tab
as
end;
note : pl_tab_type will vary for each run of function f
i.e.,for example, pl_tab_type can be changd to as follows:
type pl_tab_type is object(col1 varchar2(1000), col2 varchar2(1000),col3 varchar2(1000))
how to return pl/sql table of dynamic type from func, thanks for help in advance.WRONG FORUM!
Please mark this question ANSWERED and repost it in the SQL and PL/SQL forum.
PL/SQL -
How to join two pl/sql tables .,.,,Urgent pls help
Hi,
Please tell me how to join to pl/sql tables with example
thanks
aspIf your main intention is to get the common records/or getting whole records from the 2 different pl/sql arrays then , pls check this piece of code & explanation
The SQL language has long offered the ability to apply set operations (UNION, INTERSECT, and MINUS) to the result sets of queries. In Oracle Database 10g, you can now use those same high-level, very powerful operators against nested tables (and only nested tables) in your PL/SQL programs and on nested tables declared as columns inside relational tables.
Let's take a look at some of the syntax needed to do this, starting with UNION.
First, I create a schema-level nested table type:
CREATE OR REPLACE TYPE strings_nt
IS TABLE OF VARCHAR2(100);
Then I define a package and within it create and populate two nested tables of this type, each containing some of my father's and my favorite things:
CREATE OR REPLACE PACKAGE favorites_pkg
IS
my_favorites strings_nt
:= strings_nt ('CHOCOLATE'
, 'BRUSSEL SPROUTS'
, 'SPIDER ROLL'
dad_favorites strings_nt
:= strings_nt ('PICKLED HERRING
, 'POTATOES'
, 'PASTRAMI'
, 'CHOCOLATE'
PROCEDURE show_favorites (
title_in IN VARCHAR2
, favs_in IN strings_nt
END;
In this package, I also include a procedure to show the contents of a strings_nt nested table. This will come in very handy shortly.
By defining these collections in a package, outside any program, they persist (they maintain their state and values) for the duration of my session or until I change or delete them. This means that I can now write programs outside the package to manipulate the contents of those collections.
Note that this package has been simplified for the purposes of presenting collection functionality. In a production application, you should always take care to "hide" your package data, as with these collections, in the package body, and then provide procedures and functions to manage the data.
Suppose, for example, that I would like to combine these two collections into a single collection of our favorites. Prior to Oracle Database 10g, I would have to write a loop that transfers the contents of one collection to another. Now, I can rely on the MULTISET UNION operator, as shown below:
DECLARE
our_favorites
strings_nt := strings_nt ();
BEGIN
our_favorites :=
favorites_pkg.my_favorites
MULTISET UNION ---- Use INTERSECT , if you want to know common records
favorites_pkg.dad_favorites;
favorites_pkg.show_favorites (
'ME then DAD', our_favorites);
END;
The output from this script is:
ME then DAD
1 = CHOCOLATE
2 = BRUSSEL SPROUTS
3 = SPIDER ROLL
4 = PICKLED HERRING
5 = POTATOES
6 = PASTRAMI
7 = CHOCOLATE
------------------------------ -
SAP Business One Ver. 9.0 SQL Table Name
Dear All,
This is useful SQL Table Name for SAP Business One Ver.9.0 in details
Name Description
AAC1 Asset Classes - Depreciation Areas - History
AACP Periods Category-Log
AACS Asset Classes - History
AACT G/L Account - History
AAD1 Administration Extension-Log
AADM Administration - Log
AADT Fixed Assets Account Determination - History
ABAT Attribute - History
ABFC Bin Field Configuration - History
ABIN Bin Location - History
ABO1 External Bank Operation Code - Rows - Log
ABOC External Bank Operation Code - Log
ABOE Bill of Exchange for Payment - History
ABP1 Business Place Tax IDs
ABP2 Branch Tributary Info. Log
ABPL Business Place
ABSL Warehouse Sublevel - History
ABT1 Internal Bank Operation Codes - Accounts - Log
ABTC Internal Bank Operation Codes - Log
ABTN Batch Numbers Master Data
ABTW Batch Attributes in Location
ACD1 Credit Memo - Rows
ACD2 Credit Memo - Area Journal Transactions
ACD3 Credit Memo - Item Areas
ACFP CFOP for Nota Fiscal
ACH1 Checks for Payment - Rows - History
ACHO Checks for Payment - History
ACP1 Campaign - BPs
ACP2 Campaign - Items
ACP3 Campaign - Partners
ACPN Campaign
ACPR Contact Persons - History
ACQ1 Capitalization - Rows
ACQ2 Capitalization - Area Journal Transactions
ACQ3 Capitalization - Item Areas
ACR1 Business Partner Addresses - History
ACR2 Bussiness Partners - Payment Methods-History
ACR3 Business Partner Control Accounts - History
ACR4 Allowed WTax Codes for BP - History
ACR5 BP Payment Dates
ACR7 Fiscal IDs for BP Master Data
ACRB Business Partner Bank Accounts - History
ACRC Credit Cards
ACRD Business Partners - History
ACS1 Asset Classes - Depreciation Areas
ADG1 Discount Groups Rows
ADM1 Administration Extension
ADM2 Administration Electronic Report
ADMC GL Account Determination - Criteria - History
ADNF DNF Code
ADO1 A/R Invoice (Rows) - History
ADO10 A/R Invoice - Row Structure - History
ADO11 A/R Inv (Drawn Dpm Det) - Hist
ADO12 A/R Invoice - Tax Extension - History
ADO13 A/R Invoice Rows - Distributed Expenses
ADO14 Invoice - Assembly - Rows - History
ADO15 A/R Inv (Drawn Dpm Applied) - Hist
ADO16 Draft - SnB properties
ADO17 A/R Invoice - Import Process - History
ADO18 A/R Invoice - Export Process - History
ADO19 Bin Allocation Data - History
ADO2 A/R Invoice - Freight - Rows
ADO20 Intrastat Expenses
ADO3 A/R Invoice - Freight - History
ADO4 Documents - Tax - History
ADO5 Withholding Tax - History
ADO6 Documents History - Installments
ADO7 Delivery Packages - History
ADO8 Items in Package - History
ADO9 A/R Invoice (Rows) - History
ADOC Invoice - History
ADPA Fixed Asset Depreciation Areas - History
ADS1 House Bank Accounts
ADT1 Depreciation Types - Rows - History
ADTP Fixed Assets Depreciation Types - History
AEC1 Parameters for Various Types of Electronic Communication
AEC2 Messages Processed via Electronic Communication
AEC3 Statuses and Logs for Actions in Electronic Communication
AECM Electronic Communication Types or Protocols
AEDG Discount Groups
AEXD Freight Setup
AFA1 Asset Document - Rows
AFA2 Asset Document - Area Journal Transactions
AFAD Asset Document - History
AFM1 Tax Formula Parameter Declaration
AFML Tax Formula Master Table
AFPR Posting Period-Log
AGAR G/L Account Advanced Rules - History
AHE1 Absence Information
AHE2 Education
AHE3 Employee Reviews
AHE4 Previous Employment
AHE6 Employee Roles
AHE7 Savings Payments
AHEM Employees
AIGW Item Group - Warehouse - History
AIN1 Inventory Counting - Rows
AIN2 Inventory Counting - UoM
AIN3 Inventory Count - SnB
AINC Inventory Stock Counting
AINS Customer Equipment Card - History
AIQI Inventory Initial Quantity
AIQR Inventory Stock Posting (Reconcile)
AIT1 Item - Prices - History
AIT11 Asset Item Period Control
AIT13 Asset Attributes
AIT2 Items - Multiple Preferred Vendors - History
AIT3 Items - Localization Fields - History
AIT5 Asset Item Projects - History
AIT6 Asset Item Distribution Rules
AIT7 Asset Item Depreciation Params - History
AIT8 Asset Item Balances - History
AIT9 Item - UoM Prices
AITB Item Groups - History
AITM Items - History
AITT Product Tree - History
AITW Items - Warehouse - History
AJD1 Journal Entry - History - Rows
AJD2 Withholding Tax - History
AJDT Journal Entry - History
AKL1 Pick List - Rows - History
AKL2 Pick List for SnB and Bin Details
ALR2 Dynamic message data row
ALR3 Dynamic message data cells
AMD1 Amout Differences Report Lines
AMDR Manual Distribution Rule
AMDR1 Manual Distribution Rule - Rows
AMGP Material Group
AMR1 Inventory Revaluation - History - Rows
AMR2 Inventory Revaluation FIFO Rows (Archive)
AMR3 Inventory Revaluation SNB
AMRV Inventory Revaluation - History
ANCM NCM Code
AOA1 Blanket Agreement - Rows
AOA2 Blanket Agreement - Details
AOA3 Item Details: Activity
AOA4 Blanket Agreement - Recurring Transactions
AOAT Blanket Agreement
AOC1 Distribution Rule - Rows
AOCR Distribution Rule
AOPR Sales Opportunity
APJ1 Project Plan Steps
APJ2 Project Plan Steps Time Record
APJT Project Plan
APKL Pick List - History
APLN Price Lists
APRC Cost Center
APRJ Project Codes
AQI1 Inventory Initial Qty Rows
AQI2 Inventory Count - SnB
AQR1 Inventory Stock Posting (Reconcile) Lines
AQR2 Inventory Counting - UoM
AQR3 Inventory Count - SnB
ARC1 Incoming Payment - Checks - History
ARC2 Incoming Payment - Invoices - History
ARC3 Credit Vouchers History
ARC4 Incoming Payment - Account List - History
ARC5 Reciept log vat adjustment-History
ARC6 Incoming Payments - WTax Rows - History
ARC7 Incoming Payments - Tax Amount per Document - History
ARC8 Incoming Payment - TDS Entries - History
ARCT Incoming Payment - History
ARI1 Add-On
ASC1 Service Call Solutions - History
ASC2 Service Call Inventory Expenses - History
ASC3 Service Call Travel/Labor Expenses - History
ASC4 Service Call Travel/Labor Expenses - History
ASC5 Service Call Activities - History
ASCL History
ASGP Service Group for Brazil
ASP1 Special Prices - Data Areas
ASP2 Special Prices - Quantity Areas
ASPP Special Prices
ASRN Serial Numbers Master Data
AST1 Sales Tax Codes - Rows
ASTC Sales Tax Codes
ASTT Sales Tax Authorities Type
ATC1 Attachments - Rows
ATHL Thresholds
ATSC CST Code for Nota Fiscal
ATT1 Bill of Materials - Component Items - History
ATX1 Tax Invoice - History - Rows
ATX2 Tax Invoice Operation Codes
ATXI Tax Invoice - History
AUG1 UoM Group Detail
AUGP UoM Group
AUOM UoM Master Data
AUSR Archive Users - History
AVT1 Tax Definition
AVTG Tax Definition
AWEX Workflow Engine Execution Entity
AWFQ SWFQ History Table
AWH1 Tax Definition
AWH2 WTax Definition - Rows2
AWH3 Value Range
AWHS Warehouses - History
AWHT Withholding Tax
AWL1 Potential Processor of Tasks
AWL2 Input data for tasks
AWL3 Task Notes
AWL4 Task Output Data
AWL5 Task Field Mapping Information
AWLS Workflow - Task Details
AWMG Workflow Manager
AWO1 Production Order (Rows) - History
AWO2 Production Order - Base
AWOR Production Order - History
AWTS Workflow Engine Task Table
BGT1 Budget - Rows
BGT2 Budget - Cost Accounting
BGT3 Budget - Cost Accounting Rows
BNK1 Bank Statement - Documents List
BNK2 Bank Statement - Recommendation List
BOC1 External Bank Operation Code - Rows
BOE1 Bill of Exchange for Payment - Rows
BOT1 Bill of Exchange Transactions
BOX1 Box Definition - Rows
BOX2 Box Definition - Accounts
BOX3 Box Definition - Choice
BOX4 Box Definition - Contra Accounts of Accounts
BPL1 Branch I.E. Numbers
BPL2 Branch Tributary Info.
BTC1 Internal Bank Operation Codes - Accounts
BTF1 Journal Voucher - Rows
BTF2 Journal Voucher Withholding Tax - History
CASE Internal Recon. Upgrade 2007A
CASE1 Internal Recon. Upgrade 2007A
CCAL Chinese Chart of Account Level Definition
CCFG Company Configuration
CCPD Period-End Closing
CCS1 Cycle Count Determination- Subtable
CDC1 Cash Discount - Rows
CDIC Dictionary
CFH1 Cash Flow Statement Report - History - Rows
CFUS Functionality Usage Statistics
CHD1 Checks for Payment Drafts - Rows
CHO1 Checks for Payment - Rows
CHO2 Checks for Payment - Print Status
CIF1 Country Specific Information
CIN1 Correction Invoice - Rows
CIN10 Correction Invoice - Row Structure
CIN12 Correction Invoice - Tax Extension
CIN13 Correction Invoice Rows - Distributed Expenses
CIN17 Correction Invoice - Bin Allocation Data
CIN18 Correction Invoice - Export Process
CIN19 Correction Invoice - Bin Allocation Data
CIN2 A/R Correction Invoice - Freight - Rows
CIN20 Intrastat Expenses
CIN3 A/R Correction Invoice - Freight
CIN4 Correction Invoice - Tax Amount per Document
CIN5 A\R Correction Invoice - Withholding Tax
CIN6 Correction Invoice - Installments
CIN7 Delivery Packages - Correction Invoice
CIN8 Items in Package - Correction Invoice
CIN9 Correction Invoice - Drawn Dpm
CPI1 A/P Correction Invoice - Rows
CPI10 A/P Correction Invoice - Row Structure
CPI12 A/P Correction Invoice - Tax Extension
CPI13 A/P Correction Invoice Rows - Distributed Expenses
CPI14 A/P Correction Invoice - Assembly - Rows
CPI15 A/P Corr Inv - Drawn Dpm Appld
CPI16 A/P Corr. Inv - SnB properties
CPI17 A/P Correction Invoice - Import Process
CPI18 A/P Correction Invoice - Export Process
CPI19 A/P Correction Invoice - Bin Allocation Data
CPI2 A/P Correction Invoice - Freight - Rows
CPI20 Intrastat Expenses
CPI3 A/P Correction Invoice - Freight
CPI4 A/P Correction Invoice - Tax Amount per Document
CPI5 Withholding Tax Data
CPI6 Documents History - Installments
CPI7 A/P Correction Invoice - Delivery Packages
CPI8 A/P Correction Invoice - Items in Package
CPI9 A/P Corr. Invoice - Drawn Dpm
CPL1 Quick Copy - Instance Log
CPN1 Campaign - BPs
CPN2 Campaign - Items
CPN3 Campaign - Partners
CPT1 Cockpit Subtable
CPV1 A/P Correction Invoice Reversal - Rows
CPV10 A/P CrIn Rev - Row Structure
CPV12 A/P Correction Invoice Reversal - Tax Extension
CPV13 A/P Correction Invoice Reversal Rows - Distributed Expenses
CPV14 A/P Correction Invoice Reversal - Assembly - Rows
CPV15 A/P CrIn Rev - Drawn Dpm Appld
CPV16 A/P Correction Invoice Reversal - SnB properties
CPV17 A/P Correction Invoice Reversal - Import Process
CPV18 A/P Correction Invoice Reversal - Export Process
CPV19 A/P Correction Invoice Reversal - Bin Allocation Data
CPV2 A/P Correction Invoice Reversal - Freight - Rows
CPV20 Intrastat Expenses
CPV3 A/P Correction Invoice Reversal - Freight
CPV4 A/P Correction Invoice Reversal - Tax Amt per Doc.
CPV5 A/P Correction Invoice Reversal - WTax
CPV6 A/P Correction Invoice Reversal - Installments
CPV7 A/P Corr Inv Rvsl - Deliv Pkgs
CPV8 A/P Correction Invoice Reversal - Items in Package
CPV9 A/P Corr Inv Rvrsl - Drawn Dpm
CRD1 Business Partners - Addresses
CRD2 Bussiness Partners - Payment Methods
CRD3 BP Control Account
CRD4 Allowed WTax Codes for BP
CRD5 BP Payment Dates
CRD6 BP's Payer Name
CRD7 Fiscal IDs for BP Master Data
CRD8 BP Branch Assignment
CRD9 OCRD Extension
CSI1 A/R Correction Invoice - Rows
CSI10 A/R Correction Invoice - Row Structure
CSI12 A/R Correction Invoice - Tax Extension
CSI13 A/R Correction Invoice Rows - Distributed Expenses
CSI14 A/R Correction Invoice - Assembly - Rows
CSI15 A/R Corr Inv - Drawn Dpm Appld
CSI16 A/R Corr. Inv. - SnB properties
CSI17 A/R Correction Invoice - Import Process
CSI18 A/R Correction Invoice - Export Process
CSI19 A/R Correction Invoice - Bin Allocation Data
CSI2 A/R Corr Inv - Freight - Rows
CSI20 Intrastat Expenses
CSI3 A/R Correction Invoice - Freight
CSI4 A/R Correction Invoice - Tax Amount Per Document
CSI5 A/R Correction Invoice - Withholding Tax
CSI6 A/R Corr. Inv. - Installments
CSI7 A/R Corr. Inv. Deliv. Pkgs
CSI8 A/R Corr. Inv. - Items in Pkg
CSI9 A/R Corr. Inv. - Drawn Dpm
CSN1 Certificate Series - Series
CSPI Solution Packager Information
CSTN Workstation ID
CSV1 A/R Correction Invoice Reversal - Rows
CSV10 A/R Correction Invoice Reversal - Row Structure
CSV12 A/R Correction Invoice Reversal - Tax Extension
CSV13 A/R Correction Invoice Reversal Rows - Distributed Expenses
CSV14 A/R Correction Invoice Reversal - Assembly - Rows
CSV15 A/R CrIn Rev - Drawn Dpm Appld
CSV16 A/R Correction Invoice Reversal - SnB properties
CSV17 A/R Correction Invoice Reversal - Bin Allocation Data
CSV18 A/R Correction Invoice Reversal - Export Process
CSV19 A/R Correction Invoice Reversal - Bin Allocation Data
CSV2 A/R Correction Invoice Reversal - Freight - Rows
CSV20 Intrastat Expenses
CSV3 A/R Correction Invoice Reversal - Freight
CSV4 A/R Correction Invoice Reversal - Tax Amount Per Document
CSV5 A/R Correction Invoice Reversal - WTax
CSV6 A/R Correction Invoice Reversal - Installments
CSV7 A/R Correction Invoice Reversal - Delivery Packages
CSV8 A/R Correction Invoice Reversal - Items in Package
CSV9 A/R CrIn Rev - Drawn Dpm
CTG1 Installment Layout
CTNS Transaction Notification Setting
CTR1 Service Contract - Items
CTR2 Service Contract - Recurring Transactions
CUL1 Customer Usage Statistics Log
CUMF Folder
CUMI My Menu Items
DAB1 Dashboard Queries
DADB Data Archive DSA Balance
DAR1 Data Archive - Transaction Log
DAR2 Data Archive - Transaction Log
DAR3 Data Archive - Handwritten Documents
DATB Data Archive Tax Balance
DBADM Read-Only DB User
DDT1 Withholding Tax Deduction Hierarchy - Rows
DGP1 Customer List
DGP2 Expanded Selection Criteria
DGP3 Expanded Consolidation Options
DGP4 Business Place List
DGP5 Sort By List
DLN1 Delivery - Rows
DLN10 Delivery - Row Structure
DLN12 Delivery - Tax Extension
DLN13 Delivery Rows - Distributed Expenses
DLN14 Delivery Notes - Assembly - Rows
DLN15 Delivery - Drawn Dpm Applied
DLN16 Delivery - SnB properties
DLN17 Delivery - Import Process
DLN18 Delivery - Export Process
DLN19 Delivery - Bin Allocation Data
DLN2 Delivery Notes - Freight - Rows
DLN20 Intrastat Expenses
DLN3 Delivery Notes - Freight
DLN4 Delivery - Tax Amount per Document
DLN5 Delivery - Withholding Tax
DLN6 Delivery - Installments
DLN7 Delivery Packages
DLN8 Items in Package - Delivery
DLN9 Delivery - Drawn Dpm
DMW1 Query List
DOC20 Intrastat Expenses
DPI1 A/R Down Payment - Rows
DPI10 A/R Down Payment - Row Structure
DPI11 A/R DP - Drawn Dpm Detail
DPI12 Down Payment In - Tax Extension
DPI13 A/R Down Payment Rows - Distributed Expenses
DPI14 A/R Down Payment - Assembly - Rows
DPI15 A/R DP - Drawn Dpm Applied
DPI16 A/R Down Payment - SnB properties
DPI17 A/R Down Payment - Import Process
DPI18 A/R Down Payment - Export Process
DPI19 A/R Down Payment - Bin Allocation Data
DPI2 A/R Down Payment - Freight - Rows
DPI20 Intrastat Expenses
DPI3 A/R Down Payment - Freight
DPI4 A/R Down Payment - Tax Amount per Document
DPI5 A/R Down Payment - Withholding Tax
DPI6 A/R Down Payment - Installments
DPI7 Delivery Packages - A/R Down Pymt
DPI8 Items in Package - A/R Down Pmt.
DPI9 Down Payment Incoming - Drawn Dpm
DPO1 A/P Down Payment - Rows
DPO10 A/P Down Payment - Row Structure
DPO12 Down Payment - Tax Extension
DPO13 A/P Down Payment Rows - Distributed Expenses
DPO14 A/P Down Payment - Assembly - Rows
DPO15 A/P DP - Drawn Dpm Applied
DPO16 A/P Down Payment - SnB properties
DPO17 A/P Down Payment - Import Process
DPO18 A/P Down Payment - Export Process
DPO19 A/P Down Payment - Bin Allocation Data
DPO2 A/P Down Payment - Freight - Rows
DPO20 Intrastat Expenses
DPO3 A/P Down Payment - Freight
DPO4 A/P Down Payment - Tax Amount per Document
DPO5 A/P Down Payment - Withholding Tax
DPO6 Down Payment Out - Installments
DPO7 Delivery Packages - A/P Down Pymt
DPO8 Items in Package - A/P Down Pmt.
DPO9 Down Payment Outgoing - Drawn Dpm
DPS1 Deposit - Rows
DRF1 Draft - Rows
DRF10 Draft - Row Structure
DRF12 Draft - Tax Extension
DRF13 Draft Rows - Distributed Expenses
DRF14 Draft - Assembly - Rows
DRF15 Draft - Drawn Dpm Applied
DRF16 Draft - SnB - Rows
DRF17 Draft - Import Process
DRF18 Draft - Export Process
DRF19 Draft - Bin Allocation Data
DRF2 Draft - Freight - Rows
DRF20 Intrastat Expenses
DRF3 Draft - Freight
DRF4 Draft Documents - Tax
DRF5 Draft Documents - Withholding Tax
DRF6 Document Drafts - Installments
DRF7 Delivery Packages - Drafts
DRF8 Items in Package - Draft
DRF9 Document Draft - Drawn Dpm
DRN1 Depreciation Run - Posting
DRN2 Depreciation Run - Posting - Asset
DSC1 House Bank Accounts
DTP1 Depreciation Types - Rows
DUT1 Dunning Term Array1
DWZ1 Dunning Wizard Array1 - BP Filter
DWZ2 Dunning Wizard Array 2-Invoice Filter
DWZ3 Dunning Wizard Array 3 - Recommended Service Invoice
ECM1 Parameters for Various Types of Electronic Communication
ECM2 Messages Processed via Electronic Communication
ECM3 Statuses and Logs for Actions in Electronic Communication
EDG1 Discount Groups Rows
EJB1 ERV-JAb Wizard Signing Persons
EJB2 Docs List for ERV-JAb Wizard
EJD1 ERV-JAb Signing Persons List
EOY1 End of Year UDOs
ERX1 Excise Registering Number-Rows
FAA1 Asset Attributes - Rows
FAC1 Fixed Asset Parameter Change - Rows
FAC2 Fixed Asset Parameter Change - Period Control Change
FAM1 Fixed Asset Data Migration - Rows
FAR1 Fixed Asset Revaluation - Rows
FCT1 Sales Forecast - Rows
FIX1 Fixed Asset Transaction - Rows
FLT1 856 Report - Selection Criteria
FML1 Tax Formula Parameter Declaration
FRC1 Extend Cat. f. Financial Rep.
FTR1 Transfer - Rows
FTR2 Transfer - Area Journal Transactions
FTR3 Transfer - Item Areas
GBI1 GBI Row 1 - Electronic Account Book
GBI10 GBI Row 10 - Enterprise's Cash Flow Statement
GBI11 GBI Row 11 - Devalue Provision of Enterprise Assets
GBI12 GBI Row 12 - Shareholder's Rights and Interests Changing Report
GBI13 GBI Row 13 - Enterprise's Profit Distribution Report
GBI14 GBI Row 14 - Small Enterprise's Cash Flow Statement
GBI15 GBI Row 15 - Enterprise's VAT Payable Detail Report
GBI16 GBI Row 16 - Employees
GBI2 GBI Row 2 - G/L Account Master Records
GBI3 GBI Row 3 - Departments
GBI4 GBI Row 4 - Business Partners
GBI5 GBI Row 5 - Projects
GBI6 GBI Row 6 - G/L Account Balance
GBI7 GBI Row 7 - Accounting Vouchers
GBI8 GBI Row 8 - Enterprise's Balance Sheet
GBI9 GBI Row 9 - Enterprise's Profit and Loss Statement
GFL1 Grid Filter Rules
GFL2 Grid Filter Name
GPA1 Gross Profit Adjustment - Log
GPA2 Gross Profit Adjustments - Parameters
GTI1 GTS Invoice Details
GTM1 GTS Mapping Object Details
HEM1 Absence Information
HEM2 Education
HEM3 Employee Reviews
HEM4 Previous Employment
HEM5 Employee Data Ownership Authorization
HEM6 Employee Roles
HEM7 Savings Payments
HET1 Employee Transfer Details
HLD1 Holiday Dates
HMM1 Child Table of OHMM
HMM2 Child Table of OHHM
HTM1 Team Members
IBT1 Batch Number Transactions
ICD1 Inventory Counting Draft - Rows
ICD2 Inventory Counting Draft - UoM
ICD3 Inventory Count Draft - SnB
IEI1 Incoming Excise Invoice - Rows
IEI10 Incoming Excise Invoice - Row Structure
IEI11 IEI - Drawn Dpm Detail
IEI12 Incoming Excise Invoice - Tax Extension
IEI13 Incoming Excise Invoice Rows - Distributed Expenses
IEI14 Incoming Excise Invoice - Assembly - Rows
IEI15 IEI - Drawn Dpm Applied
IEI16 Incoming Excise Invoice - SnB properties
IEI17 Incoming Excise Invoice - Import Process
IEI18 Incoming Excise Invoice - Export Process
IEI19 Incoming Excise Invoice - Bin Allocation Data
IEI2 Incoming Excise Invoice - Freight - History - Rows
IEI20 Intrastat Expenses
IEI3 IEI - Freight
IEI4 Incoming Excise Invoice - Tax Amount per Document
IEI5 Incoming Excise Invoice - Withholding Tax
IEI6 IEI - Installments
IEI7 Delivery Packages - Incoming Excise Invoice
IEI8 Incoming Excise Invoice - Items in Package
IEI9 IEI - Drawn Dpm
IGE1 Goods Issue - Rows
IGE10 Goods Issue - Row Structure
IGE12 Goods Issue - Tax Extension
IGE13 Goods Issue Rows - Distributed Expenses
IGE14 Goods Issue - Assembly - Rows
IGE15 Gds Issue - Drawn Dpm Applied
IGE16 Goods Issue - SnB properties
IGE17 Goods Issue - Import Process
IGE18 Goods Issue - Export Process
IGE19 Goods Issue - Bin Allocation Data
IGE2 Goods Issue - Freight - Rows
IGE20 Intrastat Expenses
IGE3 Goods Issue - Freight
IGE4 Goods Issue - Tax Amount per Document
IGE5 Goods Issue - Withholding Tax
IGE6 Goods Issue - Installments
IGE7 Delivery Packages - Goods Issue
IGE8 Items in Package - Goods Issue
IGE9 Goods Issue - Drawn Dpm
IGN1 Goods Receipt - Rows
IGN10 Goods Receipt - Row Structure
IGN12 Goods Receipt - Tax Extension
IGN13 Goods Receipt Rows - Distributed Expenses
IGN14 Goods Receipt - Assembly - Rows
IGN15 Gds Rcpt - Drawn Dpm Applied
IGN16 Goods Receipt - SnB properties
IGN17 Goods Receipt - Import Process
IGN18 Goods Receipt - Export Process
IGN19 Goods Receipt - Bin Allocation Data
IGN2 Goods Receipt - Freight - Rows
IGN20 Intrastat Expenses
IGN3 Goods Receipt - Freight
IGN4 Goods Receipt - Tax Amount per Document
IGN5 Goods Receipt - Withholding Tax
IGN6 Goods Receipt- Installments
IGN7 Goods Receipt - Delivery Packages
IGN8 Goods Receipt - Items in Package
IGN9 Goods Receipt - Drawn Dpm
ILM1 Srl & Batch Det of Inv Log Msg
ILM2 Inventory Account Substitute
IMT1 Acct data in selected template
IMT11 Calculated expression's constituent with sign for specifying account in specific template
INC1 Inventory Counting - Rows
INC2 Inventory Counting - UoM
INC3 Inventory Count - SnB
INV1 A/R Invoice - Rows
INV10 A/R Invoice - Row Structure
INV11 A/R Invoice - Drawn Dpm Detail
INV12 A/R Invoice - Tax Extension
INV13 A/R Invoice Rows - Distributed Freights
INV14 A/R Invoice - Assembly - Rows
INV15 A/R Inv. - Drawn Dpm Applied
INV16 A/R Invoice - SnB properties
INV17 A/R Invoice - Import Process
INV18 A/R Invoice - Export Process
INV19 A/R Invoice - Bin Allocation Data
INV2 A/R Invoice - Freight - Rows
INV20 Intrastat Expenses
INV3 A/R Invoice - Freight
INV4 A/R Invoice - Tax Amount per Document
INV5 A/R Invoice - Withholding Tax
INV6 A/R Invoice - Installments
INV7 A/R Invoice - Delivery Packages
INV8 A/R Invoice - Items in Package
INV9 A/R Invoice - Drawn Dpm
IOD1 Inventory Initial Qty Draft Rows
IOD2 Inventory Count Draft - SnB
IPD1 Inventory Stock Posting Draft (Reconcile) Lines
IPD2 Inventory Posting Draft - UoM
IPD3 Inventory Posting Draft - SnB
IPF1 Landed Costs - Rows
IPF2 Landed Costs - Costs
IPF3 Landed Costs - Customs Summary
IQI1 Inventory Initial Qty Rows
IQI2 Inventory Count - SnB
IQR1 Inventory Stock Posting (Reconcile) Lines
IQR2 Inventory Posting - UoM
IQR3 Inventory Posting - SnB
ISW1 Reported Business Partners
ISW2 Intrastat Reported Items
ISW3 Declaration Rows
ITL1 Srl & Batch Details in Transac
ITM1 Items - Prices
ITM10 OITM Extension
ITM11 Asset Item Period Control
ITM12 UoM in Item
ITM13 Asset Attributes
ITM2 Items - Multiple Preferred Vendors
ITM3 Items - Localization Fields
ITM4 Package in Items
ITM5 Asset Item Projects
ITM6 Asset Item Distribution Rules
ITM7 Asset Item Depreciation Params
ITM8 Asset Item Balances
ITM9 Item - UoM Prices
ITR1 Internal Reconciliation - Rows
ITT1 Bill of Materials - Component Items
ITW1 Item Count Alert
IVL1 IVL Layer Level
IVM1 Invoice Mapping Object Details
IVRU Inventory Valuation Utility
IWB1 Batch No. Quantities Backup
IWB2 Serial No. Quantities Backup
IWZ1 Accounts Revaluation History
IWZ2 Inflation Warehouse Filter
IWZ3 Items Last Revaluation Data
JDT1 Journal Entry - Rows
JDT2 Withholding Tax - History
JST1 TDS Adjustment - Rows
KPS1 KPI Set Array 1
LGL1 Legal Data - Rows
LLR1 Electronic Report Generation Result - Reports
MAP1 Input and Output of Mapping
MAP2 Mapping Input and Output Relation
MDC1 Master Data Cleanup - Log
MDC2 Master Data Cleanup - MD Log
MDP1 Manual Depreciation - Rows
MDP2 Manual Depreciation - Area Journal Transactions
MDP3 Manual Depreciation - Item Areas
MDR1 Manual Distribution Rule - Rows
MIN1 Monthly Invoice Report Document Information
MIN2 Item Imformation of MI
MIV1 A/P Monthly Invoice - Document
MIV2 A/P Monthly Invoice - Item
MLS1 Distribution Lists - Recipients
MLT1 Translations in user language
MRV1 Inventory Revaluation Information Array
MRV2 Inventory Revaluation FIFO Rows
MRV3 Inventory Revaluation SNB
MSN1 MRP Scenarios - Warehouses Array
MSN2 MRP Run Results
MSN3 MRP Pegging Information
MSN4 MRP Scenarios - Items Array
MSN5 MRP-Specific Document
NFN1 Not a Fiscal Sequence
NNM1 Documents Numbering - Series
NNM4 Electronic Series
NNM5 Document Numbering - Removed Serial Numbers
OACD Credit Memo
OACG Account Category
OACK Acknowledge Number
OACM Accumulation
OACP Periods Category
OACQ Capitalization
OACR Accrual Type
OACS Asset Classes
OACT G/L Accounts
OADF Address Formats
OADG Depreciation Groups
OADM Administration
OADT Fixed Assets Account Determination
OAGM Arguments for B1i
OAGP Agent Name
OAGS Asset Groups
OAIM Archive Inventory Message
OALC Loading Expenses
OALI Alternative Items 2
OAMD Amount Differences Report
OARG Customs Groups
OARI Add-On - Company Definitions
OASC Account Segmentation Categories
OASG Account Segmentation
OAT1 Blanket Agreement - Rows
OAT2 Blanket Agreement - Details
OAT3 Item Details: Activity
OAT4 Blanket Agreement - Recurring Transactions
OATC Attachments
OBAT Bin Location Attribute
OBBI Brazil Beverage Indexer
OBBQ Item - Serial/Batch - Bin Accumulator
OBCA Bank Charges Allocation Codes
OBCD Bar Code Master Data
OBCG Bank Charge for Bank Transfers
OBDC B1i DI Configuration
OBFC Bin Field Configuration
OBFI Brazil Fuel Indexer
OBGD Budget Cost Assess. Mthd
OBGS Budget Scenario
OBGT Budget
OBIN Bin Location
OBMI Brazilian Multi-Indexer
OBNH Bank Statement Header
OBNI Brazil Numeric Indexer
OBNK External Bank Statement Received
OBOC External Bank Operation Code Category
OBOD BIOD Master Data
OBOE Bill of Exchange for Payment
OBOS Box Set Definition
OBOT Bill Of Exchang Transaction
OBOX Box Definition
OBPL Business Place
OBPP BP Priorities
OBSI Brazil String Indexer
OBSL Warehouse Sublevel
OBST BoE Stamp Tax
OBTC Internal Bank Operation Codes
OBTD Journal Vouchers List
OBTF Journal Voucher Entry
OBTL Bin Transaction Log
OBTN Batch Numbers Master Data
OBTQ Batch No. Quantities
OBTW Batch Attributes in Location
OBVL Serial Numbers and Batch Valuation Log
OCBI Central Bank Ind.
OCCD Cargo Customs Declaration Numbers
OCCS Cycle Count Determination
OCCT Cost Center Type
OCDC Cash Discount
OCDP Closing Date Procedure
OCDT Credit Card Payment
OCFH Cash Flow Statement History
OCFP CFOP for Nota Fiscal
OCFT Cash Flow Transactions - Rows
OCFW Cash Flow Line Item
OCHD Checks for Payment Drafts
OCHF 312
OCHH Check Register
OCHO Checks for Payment
OCHP India Chapter ID
OCIF Configuration of Intrastat Fields
OCIG CIG Codes
OCIN A/R Correction Invoice
OCIP Configuration of Integration Packages
OCLA Activity Status
OCLG Activities
OCLO Meetings Location
OCLS Activity Subjects
OCLT Activity Types
OCMN Customized Menu
OCMT Competitors
OCNA CNAE Code
OCNT Counties
OCOG Commission Groups
OCPC Quick Copy Config.
OCPI A/P Correction Invoice
OCPL Quick Copy Log Manager
OCPN Campaign
OCPR Contact Persons
OCPT Cockpit Main Table
OCPV A/P Correction Invoice Reversal
OCQG Card Properties
OCR1 Distribution Rule - Rows
OCRB BP - Bank Account
OCRC Credit Cards
OCRD Business Partner
OCRG Card Groups
OCRH Credit Card Management
OCRN Currency Codes
OCRP Payment Methods
OCRT CRDB Tables Tree List
OCRV Credit Payments
OCRY Countries
OCSC Crystal Server Configuration
OCSI A/R Correction Invoice
OCSN Certificate Series
OCSQ Column Sequences
OCST States
OCSV A/R Correction Invoice Reversal
OCTG Payment Terms
OCTR Service Contracts
OCTT Contract Template
OCUC CUS Configuration
OCUL Customer Usage Statistics Log
OCUP CUP Codes
OCYC Cycle
ODAB Dashboard
ODAR Data Archiving
ODBN Bat. Nos - Draft - Master Data
ODBW Batch Draft Attribs in Locat.
ODCC Dashboard Cache Configuration
ODCI Intrastat Configuration
ODDG Withholding Tax Deduction Groups
ODDT Withholding Tax Deduction Hierarchy
ODGL Deduction Group List
ODGP Document Generation Parameter Sets
ODIM Cost Accounting Dimension
ODLL Bar Code Algorithm File
ODLN Delivery
ODMC GL Account Determination - Criteria
ODMW Data Migration
ODNF DNF Code
ODOR Doubtful Debts
ODOW Data Ownership - Objects
ODOX Data Ownership - Exceptions
ODPA Fixed Asset Depreciation Areas
ODPI A/R Down Payment
ODPO A/P Down Payment
ODPP Depreciation Type Pools
ODPS Deposit
ODPT Postdated Deposit
ODPV Fixed Assets Depreciation Value
ODRF Drafts
ODRN Depreciation Run
ODSC Bank Codes
ODSN SNs - Draft - Master Data
ODSW SN Draft Attribs in Location
ODTP Fixed Assets Depreciation Types
ODTY BoE Document Type
ODUN Dunning Letters
ODUT Dunning Terms
ODWZ Dunning Wizard
OECDW ECD Wizard
OECM Electronic Communication Types or Protocols
OEDG Discount Groups
OEI1 Outgoing Excise Invoice - Rows
OEI10 Outgoing Excise Invoice - Row Structure
OEI11 OEI - Drawn Dpm Detail
OEI12 Outgoing Excise Invoice - Tax Extension
OEI13 Outgoing Excise Invoice Rows - Distributed Expenses
OEI14 Outgoing Excise Invoice - Assembly - Rows
OEI15 OEI - Drawn Dpm Applied
OEI16 Outgoing Excise Invoice - SnB properties
OEI17 Outgoing Excise Invoice - Import Process
OEI18 Outgoing Excise Invoice - Export Process
OEI19 Outgoing Excise Invoice - Bin Allocation Data
OEI2 OEI - Freight Rows
OEI20 Intrastat Expenses
OEI3 OEI - Freight
OEI4 Outgoing Excise Invoice - Tax Amount per Document
OEI5 Outgoing Excise Invoice - Withholding Tax
OEI6 Outgoing Excise Invoice - Installments
OEI7 Delivery Packages - Outgoing Excise Invoice
OEI8 Outgoing ExHi,
You should post as "Write document" or "Write a blog post" option not as discussion.
Thanks & Regards,
Nagarajan -
How to select data from a PL/SQL table
Hi,
I am selecting data from database after doing some screening i want to store it in a PL/SQL table (temporary area) and pass it to oracle reports.
Is there any way to select the data from a PL/SQL table as a cursor. Or is there any other way of holding the temporary data and then pass it back as a cursor.
Regards
KamalA PL/SQL "table" is anything but a table. Whoever came up with this term in PL/SQL to describe what is known as dynamic arrays (the correct programming terminology that existed since the 70's if not earlier and what is used in all other programming languages I'm familiar with)... well, several descriptions come to mind and none of them are complimentary.
You cannot "select" from a PL/SQL dynamic array as it is not a table within the Oracle context of tables.
Thus you need to convert (cast) a PL/SQL dynamic array into a temporary Oracle data set/table in order to select from it. This is in general a Bad Idea (tm). Oracle tables and SQL and concurrency controls and all that are especially designed for processing data. PL/SQL arrays is a very simplistic data structure with very limited usage. Why would you want to use that in SQL via a SELECT statement when you can use Oracle tables (or proper temp tables) instead? Besides that, it is also slow to cast a dynamic PL/SQL array into an Oracle SQL data set structure (context switching, copying of memory, etc).
The proper way to use PL/SQL to generate data sets for use via the SQL engine is pipelined table functions.
This is not to say that you should never use PL/SQL arrays and casting in SQL.. simply that you need to make sure that this is the correct and scalable way to do it. And that will also always be an exception to the rule when you do. -
ERROR WHEN RETURNING A PL/SQL TABLE?
Hi,
I try to call a Oracle 9i function from Oracle 8i via TEST9.WORLD dblink.
The function returns me a pl/sql table.
It compiles but when I try to execute I get the following error
The following error has occurred:
ORA-02068: following severe error from TEST9.WORLD
ORA-06512: at "TBSDEV.GETDATA", line 12
ORA-06512: at line 2
Note: I test the code in a single database instance
and it works fine. The problem occurs when I move the getData function to 8i and
call the package function via a dblink.
What can I do?
what might be the problem?
Does not Oracle permit us move table of records between 2 database instances?
]f it does not, it is very tragic because we can get the SQL Server record sets to
Oracle 9i through a gateway but we could not move these records sets within Oracle?
!!!!!!!!!!! All of the code .} use is listed below.
thanks in advance.
--BELOW IS MY PACKAGE IN ORACLE 9i SERVER
--THIS PACKAGE GETS DATA FROM SQL SERVER THROUGH TRASPARENT GATEWAY
CREATE OR REPLACE package tgw is
TYPE RefCursorType IS REF CURSOR;
TYPE HisseRecordType IS RECORD( HisseAd VARCHAR2(20) := '' );
TYPE HisseTableType IS TABLE OF HisseRecordType INDEX BY BINARY_INTEGER;
mytable HisseTableType;
myrecord HisseRecordType;
function getRecords return HisseTableType ;
end;
CREATE OR REPLACE package body tgw is
function getRecords return HisseTableType is
rc RefCursorType;
htable HisseTableType;
hrec HisseRecordType;
BEGIN
"ahtha"."getHisseSenetleri"@ata(rc); --CALLS SQL SERVER STORED PROCEDURE
FOR i IN 1..10 LOOP
FETCH rc INTO htable(i);
END LOOP;
CLOSE rc;
RETURN htable;
END;
end;
--HERE IS THE PROCEDURE IN OUR MAIN ORACLE 8i SERVER
-- TGW9i ]S THE dblink to the oracle 9i
-- THE BELOW CODE COMPILES BUT GIVES THE ERROR I MENTIONED ABOVE
PROCEDURE getdata is
htable tgw9i.mytable%TYPE;
hrec tgw9i.myrecord%TYPE;
begin
htable:=tgw9i.getRecords(10);
FOR i IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(htable(i).HisseAd);
END LOOP;
end;The problem might be passing PL/SQL Tables or Records over your database link. You might run some more simple tests with PL/SQL Records and Tables over your link.
1) I still suggest you use a GLOBAL TEMPORARY TABLE to pass your information, attempt to do everything in a few SQL statements to pass the informaiton. And then process it on the other side. Database links tend to be a bit slow, and so you want to try to reduce the number of times you extract information through the link.
2) Someone else may have more experience with DB links, and calling procedures through them.
I wish you luck that you find your answer soon,
Eric Kamradt -
Joining java array with SQL table in a stored procedure
Hey,
I am calling a pl/sql stored procedure from a java program passing two arrays (employees) and (departments) as parameters to the procedure. Within the procedure I have stored the arrays in a table of records like this:
type t_emp_type is record (employee_id number, department_id number);
type t_emp_tbl_type is table of t_emp_type index by binary_integer;
Where all elements in employees are stored in the employee_id column and departments are stored in the department_id column. So basically I've got a table like:
l_employee_tbl t_emp_tbl_type;
Looped through the arrays and stored the data like:
for i in 1..p_employees.count loop
l_employee_tbl(i).employee_id := p_employees(i);
l_employee_tbl(i).deparment_id := p_departments(i);
end loop;
Now I would like to compare my l_employee_tbl with a SQL table in the database. Basically I would like to join my l_employee_tbl table with a SQL table named departments on department_id, returning all department_id:s that was not found in table departments.
However, it is not possible to select from a user-defined table type. I have also tried to use the table() function and to cast l_employee_tbl, but found out it can't be done with records. And I would really like to use records or some other type where define my PL/SQL data. I know that you should not mix PL/SQL and SQL but in this case I think it is more efficient to try joining these "tables". Does anyone have a solution for this or advice to try something else out? It would be most appreciated.
Edited by: 963281 on 2012-okt-04 14:25
Edited by: 963281 on 2012-okt-05 01:53963281 wrote:
I am calling a pl/sql stored procedure from a java program passing two arrays (p_employees) and (p_departments) as parameters to the procedure. Within the procedure I have stored the arrays in a table of records like this:
type t_emp_type is record (employee_id number, department_id number);
type t_emp_tbl_type is table of t_emp_type index by binary_integer;Why do you create an associative array?
Now I would like to compare my l_employee_tbl with a SQL table in the database. Basically I would like to join my l_employee_tbl table with a SQL table named departments on department_id, returning all department_id:s that was not found in table departments. Of course, not possible as the SQL engine does not support PL/SQL user defined types. PL/SQL however support user defined SQL types. Which makes SQL defined types a lot more flexible.
However, it is not possible to select from a user-defined table type. I have also tried to use the table() function and to cast l_employee_tbl, but found out it can't be done with records. Never mind SQL and PL/SQL - as a generic programming data structure principle. How do you expect being able to cast an associative array (name-value pairs) to a standard array? The two data structures are very different. So I'm puzzled in how you expect to move a non-scalar name-value pair data structure into a non-scalar value only data structure?
And I would really like to use records or some other type where define my PL/SQL data. Why exactly? If the Java or PL/SQL data structure is populated using SQL data and database data, and wanting to use that data structure in SQL, what is the point? Why pull SQL data into a client data structure at all then - surely it is far more performant and scalable to rather keep that data in the database, and do the joins/selects/filters/etc using SQL?
There is also the issue of scalability of local data structures in PL/SQL. The PL/SQL engine runs inside an Oracle server process, consuming private process memory on the server. The bigger the data structures used in PL/SQL, the more server memory needs to be allocated to that server process. This does not scale. Especially not if 10 or more such server processes are running the same PL/SQL code and each server needs to grab large chunks of server memory.
If the data from Java comes from another source (e.g. keyboard, etc), and you need a means of storing this data server-side for use by PL/SQL and SQL. There are 2 basic choices. PL/SQL arrays for smallish amounts of data - and basing these arrays preferable on SQL data types allowing the array to be used by both SQL and PL/SQL engines. If the amount of data is not smallish, then it should be stored in the SQL engine (database) as that is designed for that exact purpose. And if the data is transient, then a GTT (global temp table) structure can be used (and indexed for optimal access). -
Bulk collection PL/SQL table
Hi all,
10g version 10.2.0.1
What approach can I take to accomplish the following.
I need to build a collection based on the result set of two SQL statements within a loop.
Example:
FUNCTION( get_info )IS
RETURN retrieval_pkg_public_ty
PIPELINED
TYPE ret_tab IS TABLE OF ret_rec;
FOR i IN 1 .. 2
LOOP
SELECT...
BULK COLLECT into ret_tbl
FROM(SELECT...
FROM(SELECT..
quite a large SQL statement...
WHERE
x = parameter_value, --parameter changes on based on i values
y = parameter_value, --parameter changes on based on i values
END LOOP;
FOR i IN ret_tbl.FIRST..ret_tbl.LAST
LOOP
PIPE ROW...
END LOOP;
I can use a global temporary table to hold the results of each loop and them select from gtt, however I would prefer to use a table function.
thanks
Markuser1602736 wrote:
Currently, I have a procedure that is called within a package that returns a SYS_REFCURSOR.
Current code in procedure is
FOR i IN 1..2
LOOP
INSERt INTO gtt
END LOOP;Why not simply populate the GTT using an INSERT INTO gtt SELECT ... FROM source WHERE .. ?
I wanted to avoid creating a gtt to accomplish above.Why? What problems with this GTT approach do you think there are?
The cursor only returns around 50 records. The record has around 20 data fieldsRemember that if you store this as a PL/SQL collection (there's no such thing as PL "+table+"), this collection resides in expensive private process memory (the PGA). If there a 100 sessions using this code, then there will be a 100 copies of this collection.
On the other hand, a GTT does not reside in expensive private memory. And it can scale to a 1000 rows in future, without affecting performance (remember that GTTs can be indexed - collections not). For a collection, you will pay an excessive price in memory for keeping that 1000 rows in the PGA.
GTTs are not a bad thing. Collections are not a bad thing. They are tools for addressing specific problems. Your task is to select the right tool for the job. Caching SQL row data in a PL/SQL collection is almost never the right tool for the job, as it requires private process memory and uses a very simplistic data structure (does not support indexes and so on). -
Hi All,
I am getting PL/SQL Table as an input to my program. Now before starting up on any logic in the program I want to find the distinct values in one of the column of PL/SQL Table. How can I do that.
Suppose PL/SQL Table is like this
+++++++++++++++
TYPE XXDUMMYRec IS RECORD
(Authorization_Number Varchar2)
XXDUMMYTbl IS TABLE OF XXDUMMYRec
INDEX BY BINARY_INTEGER;
Now say this type is input to my procedure and it's having 10 Records.
I want to fist know the distinct values in this PL/Sql Table.
+++++++++++++++
Please suggest.
Thanks
Sachin> I guess what you can do is use TABLE pseudo function. It will convert the Pl/Sql table
into the table which u can query.
Horrible approach - as that is saying "This PL/SQL array/table structure sucks! I want to run SQL on it to make it usable!!"
And then you proceed to copy and cast the the PL/SQL data structure into a SQL structure that the SQL engine can access and understand.
A great way to make code slower - pushing and pulling to/fro PL/SQL and SQL because of your poor lack of choice of using the correct structure in the first place.
A PL/SQL "table" is a huge misnomer.. as it is absolutely NOTHING at all like a table within the Oracle context. We know tables as very effective and fast and flexible structures that can be processed in all kinds of funky and froody ways using SQL.
A PL/SQL "table" is just a plain and primitive array/collection. And is nothing at all like a table. When you want to use SQL on that primitive structure, you need to ask yourself 'Why?". And you need to make sure that your reasons are technically sound. Else your code will be slow, will not scale, and can do some serious damage to PGA memory. -
Temp Table within an Stored Procedure
I'm pretty new to Oracle, but I have been developing in MS SQL for about 15. So I'm still getting use to the syntax and features within Oracle.
I'm trying to create a stored procedure that has two temporary tables within it, and then queries both them tables and inserts the results into a table.
I created the script but when they try to run in on the server it wont run. Can you guys tell me what I'm doing wrong?
CREATE OR REPLACE PROCEDURE UpdateFIDB_SP IS BEGIN CREATE GLOBAL TEMPORARY TABLE myAAAA AS (SELECT AAAA.1111, AAAA.2222, BBBB.3333_EXT, CCCC.4444, DDDD.5555, DDDD.6666, DDDD.7777, DDDD.8888, AAAA.9999, EEEE.1010, EEEE.1A1A, EEEE.1B1B, FFFF.3333_LO, FFFF.1C1C, AAAA.1D1D FROM mySchema.FFFF_07 FFFF RIGHT OUTER JOIN mySchema.EEEE EEEE ON FFFF.9999 = EEEE.1B1B RIGHT OUTER JOIN ( mySchema.DDDD DDDD RIGHT OUTER JOIN mySchema.AAAA AAAA ON DDDD.1D1D = AAAA.1D1D ) ON EEEE.PSPNR = AAAA.9999 LEFT OUTER JOIN mySchema.CCCC CCCC ON AAAA.3333 = CCCC.3333 LEFT OUTER JOIN mySchema.BBBB BBBB ON AAAA.3333 = BBBB.3333_INT GROUP BY AAAA.1D1D, AAAA.1111, AAAA.2222, BBBB.3333_EXT, CCCC.4444, DDDD.5555, DDDD.6666, DDDD.7777, DDDD.8888, AAAA.9999, EEEE.1010, EEEE.1A1A, EEEE.1B1B, FFFF.3333_LO, FFFF.1C1C ON COMMIT DELETE ROWS); CREATE GLOBAL TEMPORARY TABLE myGGGG AS (SELECT GGGG.1E1E, GGGG.1F1F, GGGG.1G1G, GGGG.1H1H, GGGG.1I1I, GGGG.1J1J, GGGG.1K1K, GGGG.R1D1D, GGGG.1L1L, GGGG.1M1M, GGGG.1N1N, GGGG.1O1O, GGGG.1P1P, GGGG.1Q1Q, HHHH.1R1R, IIII.1S1S, IIII.1T1T, IIII.1U1U, IIII.1V1V FROM mySchema.IIII IIII INNER JOIN mySchema.GGGG GGGG ON IIII.1K1K = GGGG.1K1K LEFT OUTER JOIN mySchema.HHHH HHHH ON GGGG.1L1L = HHHH.1W1W WHERE ( GGGG.1M1M IN ('20', '30') ) AND ( TO_DATE(IIII.1V1V, 'dd-mon-yyyy') = TO_DATE('31-DEC-9999','dd-mon-yyyy') ) AND ( TO_DATE(GGGG.1N1N, 'dd-mon-yyyy') >= TO_DATE('01-Jan-2011','dd-mon-yyyy') ) ON COMMIT DELETE ROWS); TRUNCATE TABLE FIDB; INSERT INTO FIDB (1111, 2222, 3333_EXT, 4444, 5555, 6666, 7777, 8888, 9999, 1010, 1A1A, 1B1B,3333_LO, 1C1C, 1D1D, 1E1E, 1F1F, 1G1G, 1H1H, 1I1I, 1J1J, 1K1K, R1D1D, 1L1L, 1M1M, 1N1N, 1O1O, 1P1P, 1Q1Q, 1R1R, 1S1S, 1T1T, 1U1U, 1V1V) SELECT myAAAA.1111, myAAAA.2222, myAAAA.3333_EXT, myAAAA.4444, myAAAA.5555, myAAAA.6666, myAAAA.7777, myAAAA.8888, myAAAA.9999, myAAAA.1010, myAAAA.1A1A, myAAAA.1B1B, myAAAA.3333_LO, myAAAA.1C1C, myAAAA.1D1D, myGGGG.1E1E, myGGGG.1F1F, myGGGG.1G1G, myGGGG.1H1H, myGGGG.1I1I, myGGGG.1J1J, myGGGG.1K1K, myGGGG.R1D1D, myGGGG.1L1L, myGGGG.1M1M, myGGGG.1N1N, myGGGG.1O1O, myGGGG.1P1P, myGGGG.1Q1Q, myGGGG.1R1R, myGGGG.1S1S, myGGGG.1T1T, myGGGG.1U1U, myGGGG.1V1V FROM myGGGG INNER JOIN myAAAA ON myGGGG.R1D1D = myAAAA.1D1D ORDER BY myGGGG.R1D1D; COMMIT; END;
Thanks!Some people still sound mad at me because I have two queries and use temp tables
Because in Oracle, unlike in sql server, you generally do not NEED temp tables at all.
One of the biggest mistakes new Oracle developers make is to use PL/SQL when SQL will do the job just fine. Using PL/SQL when it isn't needed generally makes the code slower, less scalable and harder to maintain.
One of the biggest mistakes sql server developers make when they use Oracle is to use temp table when they aren't needed. They try to write code in Oracle exactly the same way they wrote it in sql server. That creates temp tables that aren't needed, makes their code perform horribly and also makes it less scalable and harder to maintain.
Oracle works differently and generally doesn't need ANY temp tables. You need to learn about how Oracle handles transactions and read consistency and how writers do NOT block readers and vice versa.
Create a new thread and post FORMATTED code that shows the PROBLEM you are trying to solve and we can show you the proper way to solve it. That 'proper way' will likely NOT include any need for or use of temp tables. -
How to return rows from tmp table created inside function??
Hi,
I'm trying to return rows from a cursor or table (created within
the function). How do I specify the return type?Hi,
Here is the code that examples to create a function that can
return data from table.This is achieved using REFCURSOR concept.
Hope this helps you.I'm giving all stuff in single PL/SQL
block.You can break it and create a package and declare
refcursor type and function in that as well.
DECLARE
-- Declare generic cursor type
TYPE gencur_type IS REF CURSOR ;
-- Declare generic cursor varaible
gencur gencur_type;
-- Declare record type
TYPE rec_type IS RECORD(descr emp.ename%type) ;
-- Declare record type variable
rec rec_type;
--This how you declare a local function that returns gencrtype
data set
--This function is called in main block
FUNCTION call_refcur return gencur_type
AS
rr gencur_type;
BEGIN
OPEN rr FOR SELECT descr FROM emp;
RETURN rr;
END;-- end of local function
-- Main block begins here
BEGIN
-- Call the local function so that gencur will have
-- the data set returned by select statement
gencur:= call_refcur;
-- Open a loop to test the stuff
LOOP
FETCH gencur INTO rec;
EXIT WHEN gencur%NOTFOUND;
null;
dbms_output.put_line(rec.ename);
END LOOP;
END;
Regards,
Sridhar -
Accessing PL/SQL table in SQL query
Hello,
Is it possible to use plain SQL to query PL/SQL table? In my case this table is returned by UTL_HTTP.REQUEST_PIECES function, which is defined as:
create or replace package utl_http is
type html_pieces is table of varchar2(2000) index by binary_integer;
function request_pieces (url in varchar2,
max_pieces natural default 32767)
return html_pieces;
pragma restrict_references (request_pieces, wnds, rnds, wnps, rnps);
Generally, I want to access chunks of external data for comparison without using PL/SQL. Thanks ahead for ideas. Ideally, I need working example because my attempts to use TABLE & CAST failed.I was going to suggest you could try and create your own wrapper around utl_http and use a database type, but then I remembered this excellent thread which covers it better than I ever could - Billy, hope you don't mind passing on your good work!
Re: Error using UTL_HTTP over HTTPS
Maybe you are looking for
-
Volume too low on ringer and with hands-free headsets
Both the ringer's volume and the volume within headsets are too low in my new Droid X. When holding it to my ear while talking it is loud enough well below max volume, but hearing people through headsets while driving is often too low with all volume
-
HELP!!!!!! Can't see video
Hi have been editing on Final Cut for about one year with everything going fine then... Today I am editing two TV shows that I have to deliver by Saturday and my canvas window will not show video. I don't know if I hit a button or something by accide
-
Fucntion to Calculate business days (exclude weekends & holidays) between two days
Hello, I need to be able to calculate business days between two dates excluding weekends and holidays. I do have a date dimension and also flags which denote weekday, holiday. Would really appreciate help in building a udf for the business days calcu
-
Dropped Ipad, red discoloration, won't fix by slapping
I dropped my iPad 1 and now there is a red discoloration on the screen. I had previously seen in an article on Apple Support that you can fix it by slapping the back of the iPad. I have tried that for over a day and it won't go back to normal.
-
Unable to install reader on my Mac
I can open installer, then drop down box comes up with my name already listed. When I enter my password, it doesn't accept it. I have changed passwords and it still doesn't work. Help?