Eul5 tables worksheet parameters
Hi,
I have been asked to define an sql that will retrieve records that include:
workbook name, worksheet name, param1
workbook name, worksheet name, param2
etc.
The purpose is for a user of Oracle Forms to choose a workbook from the list of all workbooks, then choose the sheet, then to choose the parameters in order to give values to the parameters.
I have searched the forum and have a feeling that it cannot be done, but am not sure.
Is anyone able to give me a definitive answer?
Thanks.
Leah
Hi Kanchana,
I think that I am not making myself clear. One worksheet can have one parameter, another can have six, and another might not have any parameters.
A user might choose a worksheet that has one parameter that requests a from_date, a second parameter that requests a to_date, and a third parameter that requests choosing several customers...
The user would then choose (from a dropdown box) the workbook, then choose the worksheet, then choose one parameter and give a value, choose the next parameter and give a value, and possibly might not choose another parameter because it might not be necessary for the report.
In order for all this to happen, I need to retrieve all the parameters of all the worksheets of all the workbooks so that they can be used in a drop down box in the screen.
Thanks.
Leah
Similar Messages
-
How to find worksheet name from EUL5* tables.
Hi
I created workbook called employee report.
under that 3 worksheets created.
worksheet1 - By EMPNO
worksheet2 - By DEPTNO
worksheet3 - By JOB.
how can i find the worksheet name from the EUL5* tables?Hi Marias,
To find the worksheets run the below query
select distinct qs_doc_name WBOOK_NAME,qs_doc_details WSHEET_NAME
from eul5_qpp_stats where qs_doc_name in(select doc_name from EUL5_documents)
Regards
Sridhar -
AIOOB when navigating to Database/Worksheet Parameters in preferences
Build 21.97 on Windows.
Went to preferences, and navigated to database, worksheet parameters prefs item.
java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.Vector.elementAt(Vector.java:435)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:280)
at javax.swing.JTable.getCellEditor(JTable.java:3946)
at oracle.dbtools.raptor.config.ExtensionPanel.onExit(Unknown Source)
at oracle.ide.panels.MDDPanel.exitTraversable(MDDPanel.java:972)
at oracle.ide.panels.MDDPanel.mav$exitTraversable(MDDPanel.java:104)
at oracle.ide.panels.MDDPanel$Tsl.updateSelectedNavigable(MDDPanel.java:1267)
at oracle.ide.panels.MDDPanel$Tsl.updateSelection(MDDPanel.java:1211)
at oracle.ide.panels.MDDPanel$Tsl.actionPerformed(MDDPanel.java:1205)
at javax.swing.Timer.fireActionPerformed(Timer.java:271)
at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.Dialog.show(Dialog.java:536)
at java.awt.Component.show(Component.java:1300)
at java.awt.Component.setVisible(Component.java:1253)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
at oracle.ide.dialogs.WizardLauncher.runDialog(WizardLauncher.java:55)
at oracle.ide.panels.TDialogLauncher.showDialog(TDialogLauncher.java:202)
at oracle.ide.config.IdeSettings.showDialog(IdeSettings.java:795)
at oracle.ide.config.IdeSettings.showDialog(IdeSettings.java:580)
at oracle.ide.cmd.IdeSettingsCommand.doit(IdeSettingsCommand.java:47)
at oracle.ide.controller.CommandProcessor.invoke(CommandProcessor.java:265)
at oracle.ide.controller.IdeAction.performAction(IdeAction.java:571)
at oracle.ide.controller.IdeAction$2.run(IdeAction.java:804)
at oracle.ide.controller.IdeAction.actionPerformedImpl(IdeAction.java:823)
at oracle.ide.controller.IdeAction.actionPerformed(IdeAction.java:521)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)Duplicate thread 2197 ArrayIndexOutOfBoundsException in Preferences
Confirmed that it happens leaving the empty user extensions, but no loss of service.
K. -
Calculations stored in EUL5 tables?
Hi,
I need to find all of the Discoverer workbooks that have a calculation called %Email%. Does anyone know which EUL5 table contains this info?
Thanks!
Heather Tisdelle
Bridgewater State CollegeHi,
The workbooks are held in the EUL5_DOCUMENTS table in the EUL. However, the content of the workbook is held in a LONG RAW column so it is difficult to search the workbooks.
You can try this though. Convert the EUL5_DOCUMENTS table into another table which holds the workbook as a LOB column. You can then search it for any occurrence of the text string as shown below.
CREATE TABLE EUL5_DOC_TEMP
AS SELECT DOC_ID, DOC_NAME, DOC_DEVELOPER_KEY, TO_LOB(DOC_DOCUMENT) DOC_DOCUMENT FROM EUL5_DOCUMENTS;
SELECT DOC_NAME FROM EUL5_DOC_TEMP
WHERE DBMS_LOB.INSTR(DOC_DOCUMENT, UTL_RAW.CAST_TO_RAW('Email')) > 0;
Rod West -
Oracle Table Storage Parameters - a nice reading
bold Gony's reading excercise for 07/09/2009 bold -
The below is from the web source http://www.praetoriate.com/t_%20tuning_storage_parameters.htm. Very good material.The notes refers to figures and diagrams which cannot be seen below. But the text below is ver useful.
Let’s begin this chapter by introducing the relationship between object storage parameters and performance. Poor object performance within Oracle is experienced in several areas:
Slow inserts Insert operations run slowly and have excessive I/O. This happens when blocks on the freelist only have room for a few rows before Oracle is forced to grab another free block.
Slow selects Select statements have excessive I/O because of chained rows. This occurs when rows “chain” and fragment onto several data blocks, causing additional I/O to fetch the blocks.
Slow updates Update statements run very slowly with double the amount of I/O. This happens when update operations expand a VARCHAR or BLOB column and Oracle is forced to chain the row contents onto additional data blocks.
Slow deletes Large delete statements can run slowly and cause segment header contention. This happens when rows are deleted and Oracle must relink the data block onto the freelist for the table.
As we see, the storage parameters for Oracle tables and indexes can have an important effect on the performance of the database. Let’s begin our discussion of object tuning by reviewing the common storage parameters that affect Oracle performance.
The pctfree Storage Parameter
The purpose of pctfree is to tell Oracle when to remove a block from the object’s freelist. Since the Oracle default is pctfree=10, blocks remain on the freelist while they are less than 90 percent full. As shown in Figure 10-5, once an insert makes the block grow beyond 90 percent full, it is removed from the freelist, leaving 10 percent of the block for row expansion. Furthermore, the data block will remain off the freelist even after the space drops below 90 percent. Only after subsequent delete operations cause the space to fall below the pctused threshold of 40 percent will Oracle put the block back onto the freelist.
Figure 10-83: The pctfree threshold
The pctused Storage Parameter
The pctused parameter tells Oracle when to add a previously full block onto the freelist. As rows are deleted from a table, the database blocks become eligible to accept new rows. This happens when the amount of space in a database block falls below pctused, and a freelist relink operation is triggered, as shown in Figure 10-6.
Figure 10-84: The pctused threshold
For example, with pctused=60, all database blocks that have less than 60 percent will be on the freelist, as well as other blocks that dropped below pctused and have not yet grown to pctfree. Once a block deletes a row and becomes less than 60 percent full, the block goes back on the freelist. When rows are deleted, data blocks become available when a block’s free space drops below the value of pctused for the table, and Oracle relinks the data block onto the freelist chain. As the table has rows inserted into it, it will grow until the space on the block exceeds the threshold pctfree, at which time the block is unlinked from the freelist.
The freelists Storage Parameter
The freelists parameter tells Oracle how many segment header blocks to create for a table or index. Multiple freelists are used to prevent segment header contention when several tasks compete to INSERT, UPDATE, or DELETE from the table. The freelists parameter should be set to the maximum number of concurrent update operations.
Prior to Oracle8i, you must reorganize the table to change the freelists storage parameter. In Oracle8i, you can dynamically add freelists to any table or index with the alter table command. In Oracle8i, adding a freelist reserves a new block in the table to hold the control structures. To use this feature, you must set the compatible parameter to 8.1.6 or greater.
The freelist groups Storage Parameter for OPS
The freelist groups parameter is used in Oracle Parallel Server (Real Application Clusters). When multiple instances access a table, separate freelist groups are allocated in the segment header. The freelist groups parameter should be set the number of instances that access the table. For details on segment internals with multiple freelist groups, see Chapter 13.
NOTE: The variables are called pctfree and pctused in the create table and alter table syntax, but they are called PCT_FREE and PCT_USED in the dba_tables view in the Oracle dictionary. The programmer responsible for this mix-up was promoted to senior vice president in recognition of his contribution to the complexity of the Oracle software.
Summary of Storage Parameter Rules
The following rules govern the settings for the storage parameters freelists, freelist groups, pctfree, and pctused. As you know, the value of pctused and pctfree can easily be changed at any time with the alter table command, and the observant DBA should be able to develop a methodology for deciding the optimal settings for these parameters. For now, accept these rules, and we will be discussing them in detail later in this chapter.
There is a direct trade-off between effective space utilization and high performance, and the table storage parameters control this trade-off:
For efficient space reuse A high value for pctused will effectively reuse space on data blocks, but at the expense of additional I/O. A high pctused means that relatively full blocks are placed on the freelist. Hence, these blocks will be able to accept only a few rows before becoming full again, leading to more I/O.
For high performance A low value for pctused means that Oracle will not place a data block onto the freelist until it is nearly empty. The block will be able to accept many rows until it becomes full, thereby reducing I/O at insert time. Remember that it is always faster for Oracle to extend into new blocks than to reuse existing blocks. It takes fewer resources for Oracle to extend a table than to manage freelists.
While we will go into the justification for these rules later in this chapter, let’s review the general guidelines for setting of object storage parameters:
Always set pctused to allow enough room to accept a new row. We never want to have a free block that does not have enough room to accept a row. If we do, this will cause a slowdown since Oracle will attempt to read five “dead” free blocks before extending the table to get an empty block.
The presence of chained rows in a table means that pctfree is too low or that db_block_size is too small. In most cases within Oracle, RAW and LONG RAW columns make huge rows that exceed the maximum block size for Oracle, making chained rows unavoidable.
If a table has simultaneous insert SQL processes, it needs to have simultaneous delete processes. Running a single purge job will place all of the free blocks on only one freelist, and none of the other freelists will contain any free blocks from the purge.
The freelist parameter should be set to the high-water mark of updates to a table. For example, if the customer table has up to 20 end users performing insert operations at any time, the customer table should have freelists=20.
The freelist groups parameter should be set the number of Real Application Clusters instances (Oracle Parallel Server in Oracle8i) that access the table.sb92075 wrote:
goni ,
Please let go of 20th century & join the rest or the world in the 21st century.
Information presented is obsoleted & can be ignored when using ASSM & ASSM is default with V10 & V11I said the same over here for the exactly same thread, not sure what the heck OP is upto?
Oracle Table Storage Parameters - a nice reading
regards
Aman.... -
Table value parameters Question
I would like to use a table valued parameter to create an invoice. It will insert into the invoice header data table the header and then it will insert the invoice detail all with different tables. The problem is that until now I was doing this using 2 separate
procedures
1. insert into invoice header
2. insert into invoice detail - this was done with a foreach loop
foreach row in the invoice insert into invoice detail and it was also adjusting the inventory like so:
USE [Trial]
GO
/****** Object: StoredProcedure [dbo].[ARD_Insert] Script Date: 02/25/2014 15:23:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Debra
-- Create date: January 28, 2013
-- Description: Insert into the ARD table
-- =============================================
ALTER PROCEDURE [dbo].[ARD_Insert]
-- Add the parameters for the stored procedure here
@InvoiceARD int,
@Item int,
@Description nvarchar(50),
@Qty int,
@Price decimal(10,2),
@TempWOID nvarchar(5),
@InventoryQuantityAddSubtract int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
--BEGIN TRAN
INSERT INTO ARD(INVOICE,ITEM,[DESC],QTY,PRICE,TEMPWOID)
VALUES(@InvoiceARD, @Item, @Description, @Qty, @Price, @TempWOID)
DECLARE @Type nvarchar(3)
SET @Type = (SELECT TYPE FROM INV WHERE ITEM = @Item)
IF(@InventoryQuantityAddSubtract = 0) --Add
BEGIN
EXEC InventoryQuantityAdd_Update @Type,@Qty,@Item
END
ELSE IF(@InventoryQuantityAddSubtract = 1)--Subtract
BEGIN
EXEC InventoryQuantitySubtract_Update @Type,@Qty,@Item
END
--COMMIT TRAN
END
how would I be able to do this using table valued parameters
Debra has a questionThis is the iventoryquantity stored procedure
USE [Trial]
GO
/****** Object: StoredProcedure [dbo].[InventoryQuantityAdd_Update] Script Date: 02/25/2014 15:43:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Debra
-- Create date: October 30, 2013
-- Description: Add quantity to inventory.
-- =============================================
ALTER PROCEDURE [dbo].[InventoryQuantityAdd_Update]
-- Add the parameters for the stored procedure here
@Type nvarchar(3),
@Qty int,
@Item int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
UPDATE INV SET ONHAND = ONHAND + @Qty,STAMPED = CASE WHEN @Type = 'CIG' THEN STAMPED + @Qty ELSE 0 END,
LASTDATE = CONVERT(DATE, GETDATE()) WHERE ITEM = @Item
END
Debra has a question -
Passing internal tables as parameters to subroutines
Hi,
This was going to be a question but I just had it answered by someone. Hopefully, this piece of information is going to be useful to other people as well.
I had a subroutine in my code which looks like this.
form fr_sub_get_data USING uf_file
TABLES ct_int_log STRUCTURE zinterface_log.
endform.
I was told by someone at work to change it as follows: -
form fr_sub_get_data USING uf_file
CHANGING ct_int_log type ty_tab_int_log.
endform.
The reason is that when using the tables' clause to pass internal tables as parameters, a header line is automatically created in the subroutine which lasts for as long as the subroutine is being excecuted. Its considered to be a bad practise to use header lines (Work-Areas are preferable).
Another important point to remember is that the 'tables' clause can only be used to pass <b>standard</b> internal tables as parameters. It can not be used for internal tables of other types.
Cheers!HI
GOOD
GO THROUGH THIS LINK
http://www.abapforum.com/forum/viewtopic.php?t=1962&language=english
THANKS
MRUTYUN -
Declaring custom table under parameters tab in BADI
Hello Friends,
I need to declare custom table under parameters tab in BADI. When iam trying to change the screen from display to change mode, iam getting followoing message.
Exit classes/interfaces can only be edited using the BADI Builder
Replies regarding this highly appreciated.Thanks in advance.
Regards
SriHi,
Badi and respective method as follows.
ZBBP_CATALOG_TRANSFR --> Badi
ENRICH_ITEM_DATA --> method
I need to declare custom table under the above method
Thanks. -
The last I heard on the efforts to make TVPs writable was that they were on the roadmap for the 2008 R2 release but that it didn't make the cut.
Srini Acharya commented in the connect item associated with this feature that...
Allowing table valued parameters to be read/write involves quite a bit of work on the SQL Engine
side as well as client protocols. Due to time/resource constraints as well as other priorirites, we will not be able to take up this work as part of SQL Server 2008 release. However, we have investigated this issue and have this firmly in our radar to address
as part of the next release of SQL Server.
I have never heard any information regarding why this was pulled from the 2008R2 release and why it wasn't implemented in either SQL Server 2012 or SQL Server 2014. Can anyone shed any light on what's going on here and why it hasn't been enabled
yet? I've been champing at the bit for the better part of 6 years now to be able to move my Data Access Methodology to a more properly structured message oriented architecture using Request and Response Table Types for routing messages to and from SQL
Server Functions and Stored Procs.
Please tell me that I won't have to manually build all of this out with XML for much longer.
Note that in SQL Server 2008 table valued parameters are read only. But as you notice we actually
require you to write READONLY. So that actually then means that at some point in the future maybe if you say please, please please often enough we might be able to actually make them writable as well at some point.
Please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please, please,
please!Can someone please explain what the complication is?
It makes no sense to me that you can
1)declare a table typed variable inside a stored procedure
2)insert items into it
3)return the contents of it with a select from that table variable
but you can't say "hey. The OUTPUT parameter that was specified by the calling client points to this same variable."
I would like to understand what is so different between
create database [TechnetSSMSMessagingExample]
create schema [Resources]
create schema [Messages]
create schema [Services]
create type [Messages].[GetResourcesRequest] AS TABLE([Value] [varchar](max) NOT NULL)
create type [Messages].[GetResourcesResponse] AS TABLE([Resource] [varchar](max) NOT NULL, [Creator] [varchar](max) NOT NULL,[AccessedOn] [datetime2](7) NOT NULL)
create table [Resources].[Contrivance] ([Value] [varchar](max) NOT NULL, [CreatedBy] [varchar](max) NOT NULL) ON [PRIMARY]
create Procedure [Services].[GetResources]
(@request [Messages].[GetResourcesRequest] READONLY)
AS
DECLARE @response [Messages].[GetResourcesResponse]
insert @response
select [Resource].[Value] [Resource]
,[Resource].[CreatedBy] [Creator]
,GETDATE() [AccessedOn]
from [Resources].[Contrivance]
inner join @request as [request]
on [Resource].[Value] = [request].[Value]
select [Resource],[Creator],[AccessedOn]
from @responseGO
and
create Procedure [Services].[GetResources]
( @request [Messages].[GetResourcesRequest] READONLY
,@response [Messages].[GetResourcesResponse] OUTPUT)
AS
insert @response
select [Resource].[Value] [Resource]
,[Resource].[CreatedBy] [Creator]
,GETDATE() [AccessedOn]
from [Resources].[Contrivance]
inner join @request as [request]
on [Resource].[Value] = [request].[Value]
GO
that this cannot be accomplished in 7 years with 3 major releases of SQL Server.
If you build the database that I provided (I didn't provide flow control commands, of course so they'll need to be chunked into individual executable scripts) and then
insert into [Resources].[Contrivance] values('Arbitrary','kalanbates')
insert into [Resources].[Contrivance] values('FooBar','kalanbates')
insert into [Resources].[Contrivance] values('NotInvolvedInSample','someone-else')
GO
DECLARE @request [Message].[GetResourcesRequest]
insert into @request
VALUES ('Arbitrary')
,('FooBar')
EXEC [Services].[GetResources] @request
your execution will return a result set containing 2 rows.
Why can these not 'just' be pushed into a "statically typed" OUTPUT parameter rather than being returned as a loose result set that then has to be sliced and diced as a dynamic object by the calling client? -
BAPI table input parameters for Visual Composer not working?
I am using a BAPI with table input parameters (2 input fields for the table). I tested the BAPI in ecc function builder (it works as planned). However, it doesn't work in Visual Composer using the same input values (not getting any error messages). Is this a bug in VC 7.0? Any help would be greatly appreciated.
Edited by: Brent Crabb on Aug 29, 2008 8:12 PMHi,
The data service at a time can execute only one input data.
it will not handle too many inputs at time otherwise all the input ports should have same submit action then it is possible to Execute multiple input forms data .
When you are mapping the input form and the dataservice ,give the same event like this *submit for both Inputforms
Thanks,
Govindu -
SQLJ calling PL/SQL with records and tables as parameters
Has anyone used sqlj to to call procedures with records and
tables as IN, OUT, or INOUT as parameters? If so how do you
assign values to the IN parameter in the record/tables, and get
values out of the record/table when it is passed back? Might
anyone have any syntax?
nullOne thing I forgot to mention: If you're an 8i client, then in
8.1.6 you'll be able to use JPublisher to solve this problem,
since it'll generate these wrappers for you.
Pierre
Oracle Product Development Team wrote:
: Hi,
: The key issue is that no part of Oracle code except PL/SQL is
: aware of the PL/SQL Record types and PL/SQL "index-by" table
: types.
: So the only way to call a PL/SQL procedure with args of a
RECORD
: or "index-by" table types is from another PL/SQL routine.
: In most cases, it's possible to work-around this by wrappering
: your PL/SQL method with another which doesn't have this issue.
: For example, if you're trying to call procedure proc01 in:
: package pack01 is
: type rec01 is record(n1 number, d1 date);
: procedure proc01 (r rec01);
: end;
: you can create a wrapper method:
: package pack01_wrapper is
: procedure proc01_wrapper (n1 number, d1 date);
: end;
: package body pack01_wrapper is
: procedure proc01_wrapper (n1 number, d1 date) is
: r pack01.rec01;
: begin
: r.n1 := n1;
: r.d1 := d1;
: pack01.proc01;
: end;
: end;
: If you're a 7.3 client, that's about all you can do. The Fix
was
: introduced in 8.0, where new structured types (ADT's) and new
: table types (VARRAY's and Nested tables) were introduced. So
if
: you're an 8.0 client, your 'wrapper' package could use an ADT
: which has the same attributes as the record, rather than
: 'exploding' the record into its individual components as I
showed
: above.
: Hope this helps!
: Pierre
: Thomas Richardson (guest) wrote:
: : Has anyone used sqlj to to call procedures with records and
: : tables as IN, OUT, or INOUT as parameters? If so how do you
: : assign values to the IN parameter in the record/tables, and
get
: : values out of the record/table when it is passed back? Might
: : anyone have any syntax?
: Oracle Technology Network
: http://technet.oracle.com
Oracle Technology Network
http://technet.oracle.com
null -
PASSING TABLES AS PARAMETERS IN FOR ALL INSERT
Hi All,
I want to pass table as a parameter to perform update in dynamic sql....
sample code:
declare
cur_tab1 is select * from tabl1;
TYPE tables_bulk is TABLE OF table2.source_table%TYPE;
v_tables_bulk tables_bulk;
ls_exe varchar2(2000);
begin
for i in cur_tab1 loop
select source_table bulk collect into v_tables_bulk from table2 where table_id =i.col1
forall i in 1..v_tables_bulk.count
ls_exe :='update '|| v_tables_bulk(i) || set bulk_col1|| =i.col2'
end;
code description :
here source_table is a column in table 2..source table column contains many tables..I have to fecth that table and update it with conditions using cursor.Also for select condition , we will get more than one value (more tables)..so i used bulk collect instead of normal variable.......i get local collection error..please help me out..user2639048 wrote:
I did that but still it showed invalid sql....What is version of your database ?
Some syntax works on newer versions, and is disallowed on older.
Here is an example that works on Oracle 11g2
-- create base table
CREATE TABLE TAB AS
SELECT TAB_ID,
EMP_ID,
'NAME ' || TAB_ID NAME,
ROUND( DBMS_RANDOM.VALUE( 1, 1000 ), 2 ) SALARY
FROM (
SELECT ROUND( DBMS_RANDOM.VALUE(1,20)) TAB_ID,
LEVEL EMP_ID
FROM DUAL
CONNECT BY LEVEL <= 100
-- create child tables
DECLARE
X PLS_INTEGER;
BEGIN
SELECT MAX( TAB_ID ) INTO X
FROM TAB;
FOR I IN 1 .. X LOOP
EXECUTE IMMEDIATE
'CREATE TABLE TAB' || I ||
q'{ AS SELECT * FROM TAB
WHERE 1 = 0 }';
END LOOP;
END;
CREATE OR REPLACE
PACKAGE UPDATE_TAB IS
TYPE TAB_TAB_TYP IS TABLE OF TAB%ROWTYPE;
PROCEDURE UPDATE_TAB( I_TAB IN TAB_TAB_TYP );
PROCEDURE TEST_UPDATE_TAB;
END UPDATE_TAB;
CREATE OR REPLACE
PACKAGE BODY UPDATE_TAB AS
PROCEDURE UPDATE_TAB( I_TAB IN TAB_TAB_TYP ) AS
BEGIN
FOR I IN I_TAB.FIRST .. I_TAB.LAST
LOOP
EXECUTE IMMEDIATE
' UPDATE TAB' || I_TAB(I).TAB_ID ||
Q'{ SET TAB_ID = :TABID, NAME = :NAM, SALARY = :SAL
WHERE EMP_ID = :EMPID }'
USING I_TAB(I).TAB_ID, I_TAB(I).NAME,
I_TAB(I).SALARY, I_TAB(I).EMP_ID;
IF SQL%ROWCOUNT <= 0 THEN
EXECUTE IMMEDIATE
' INSERT INTO TAB' || I_TAB(I).TAB_ID ||
' ( TAB_ID, EMP_ID, NAME, SALARY ) ' ||
' VALUES( :TABID, :EMPID, :NAME , :SAL )'
USING I_TAB(I).TAB_ID, I_TAB(I).EMP_ID,
I_TAB(I).NAME, I_TAB(I).SALARY;
END IF;
END LOOP;
END UPDATE_TAB;
PROCEDURE TEST_UPDATE_TAB IS
L_TAB TAB_TAB_TYP;
BEGIN
SELECT * BULK COLLECT INTO L_TAB
FROM TAB;
UPDATE_TAB( L_TAB );
END;
END UPDATE_TAB;
--- TEST
BEGIN
UPDATE_TAB.TEST_UPDATE_TAB;
END;
SELECT * FROM TAB16;
TAB_ID EMP_ID NAME SALARY
16 2 NAME 16 455.86
16 6 NAME 16 253.18
16 14 NAME 16 478.92
16 32 NAME 16 381.27
16 56 NAME 16 737.77
16 58 NAME 16 382.65
16 70 NAME 16 203.03
16 100 NAME 16 435.73
8 rows selected
SELECT * FROM TAB2;
TAB_ID EMP_ID NAME SALARY
2 1 NAME 2 737.91
2 18 NAME 2 35.61
2 22 NAME 2 57.76
2 33 NAME 2 851.72
2 73 NAME 2 109.74
5 rows selected
UPDATE TAB SET SALARY = 100
WHERE TAB_ID = 2;
5 rows updated
BEGIN
UPDATE_TAB.TEST_UPDATE_TAB;
END;
SELECT * FROM TAB2;
TAB_ID EMP_ID NAME SALARY
2 1 NAME 2 100
2 18 NAME 2 100
2 22 NAME 2 100
2 33 NAME 2 100
2 73 NAME 2 100
5 rows selected -
Passing internal tables as parameters to a class method.
Hai,
I have a requirement to pass an internal table(not structure) as a parameter to a method of a class.Are there ways to do it?
Plz reply.
Thanks in advance.
HemaHI
GOOD
GO THROUGH THIS LINK
http://www.abapforum.com/forum/viewtopic.php?t=1962&language=english
THANKS
MRUTYUN -
Issue with Data binding in Table with Parameters
When we bind the table rows with parameter 'select', the data is not displayed in the table. Check the snippix file created for this issue: url: http://veui5infra.dhcp.wdf.sap.corp:8080/snippix/#70874
But the same parameter works with the odata service:
http://10.66.186.12:8000/OnlineShoppingAnalysis/Services/Analysis_Date_Range.xsodata/Sales_Periodwise?$select=Product_Name,Quantity
Credentials:
user: System
Password: Abcd1234I'm not able to access your service,so I can't test it.
You could try to do a read operation on your model and add the result to a new JSON model which you can bind on to your table:
var sServiceUrl ="http://services.odata.org/Northwind/Northwind.svc";
var oModel = new sap.ui.model.odata.ODataModel(sServiceUrl);
var oModelJson = new sap.ui.model.json.JSONModel();
oModel.read("/Customers", null, {select: "Product_Name,Quantity"} , true, function(oData, oResponse){
oModelJson.setData(oData.results);
sap.ui.getCore().setModel(oModelJson, "Model");
},function(){
alert("Read failed");});
OpenUI5 SDK - Demo Kit
Documentation/AdvancedTopics/DataBinding/ODataWrite – SAPUI5 Wiki (TIP CORE User Interface)
Kind regards,
Wouter -
Where the security grant data go in the EUL5 tables
Hi all,
It must be a old question that we grant the business area through the database role but the user may not always see the business area. As this problem happened to me again last week with a new EUL. I wonder if there is a table (or some tables) that we can query to see if the grant info has been saved into the database. I tried EUL5_EUL_USERS and EUL5_ACCESS_PRIVS table without any luck.
The Discoverer admin I am working is 9.0.4.
Any help will be greatly appreciated.
Best Regards,
yKeHI,
I use oracle application (resp and not roles) and it goes like that:
select bas.ba_name,
bas.ba_description,
case when instr(us.eu_username,'#')=0 then us.eu_username
when instr(us.eu_username,'#')>0 and instr(us.eu_username,'#',2)=0 then (select fu.user_name from fnd_user fu where fu.user_id=substr(us.eu_username,2,5))
else (select resp.responsibility_name from fnd_responsibility_tl resp where resp.responsibility_id=substr(us.eu_username,2,5))
end as USER_RESP_NAME
from
eul_us.eul5_bas bas,
eul_us.eul5_access_privs acc,
eul_us.eul5_eul_users us
where
acc.gba_ba_id=bas.ba_id
and acc.ap_type='GBA'
and us.eu_id=acc.ap_eu_id
order by bas.ba_name,3
Hope it helped
Maybe you are looking for
-
How do I get Netflix on my ipad1 with ios5? Please help
Help me please! How do I get Netflix on my ipad1?
-
When is synchronization required?
My application runs a number of threads inside a Tomcat server, each of which is updating a replicated cache (checking for pre-existing entries in some cases). I have been getting irregular problems in the classloader - apparently due to what seem to
-
Right click "open with" yields 2 copies of "Safari", "Firefox" & "Quicktime
Hi I have this problem when i right click on a .jpeg .jpg file. it yields 2 copies of "Safari", "Firefox" & "Quicktime. I have verified and repaired permissions using disk utility but to no avail. can anyone offer any help? reward pts awarded. thanks
-
I don't get any iCal updates on my iPhone since I'm using iCloud, any help?
I don't get any iCal updates on my iPhone since I'm using iCloud, any help?
-
What is the formula for a cell equal to itself plus another cell?
I trying to create a worksheet where I enter a new number into a cell at different times and have a running total in another cell.