Initializing collections
I am working with 8.1.5 and have defined a new object (i.e. period_t). I also wanted to make a nested table of the new object (i.e. element_t) which is defined like:
create or replace type element_t as TABLE of period_t;
However when I try to run a select on a function that uses this element_t, I get the following error:
ORA-06531: Reference to uninitialized collection
Does anyone know how to initialize a collection? I'm not exactly sure what that means as the size of the collection is dynamic and has no real bounds. I tried setting the collection to NULL before it is used, but that didn't help. Any help would be appreciated. Thanx.
Have You read PL/SQL User's Guide and Reference Chapter 4. Collections and Records?
And especially about method extend?
Similar Messages
-
Dunning by dunning procedure and collection strategy
Hi All,
Have some questions around dunning.
1. Can dunning by dunning procedure and collection strategy coexist in the same company code - if this cannot be achieved by config can it be achieved by development - can we have something like account determination IDs of X to use dunning procedure, account determination IDs of Y to use collection strategy?
2. If the answer to 1. is no, can one company code use dunning procedure and another company code use collection strategy?
3. What is SAP's (or any other proven) recommended approach to migrate a production system utilising dunning by dunning procedure to dunning by collection strategy?
Cheers.Have a look
SAP-ISU will be used to carry out initial collection activities. Initial 1 or 2 reminder letters (based on the customer type, Live or Closed) will generated from SAP-ISU. Thereafter, the account will be managed in Tallyman. Thus, all the subsequent activities, such as sending further reminder letters, sending debt to collection agencies, carry out warrant activities and taking customers to court will be carried out in Tallyman system. During the time, the account is in Tallyman, no dunning activities will be carried out in SAP.
There will be daily interfaces from SAP-ISU to Tallyman to update Tallyman of Accounts that have passed a certain dunning level in SAP-ISU and any changes to the account that are currently being managed in Tallyman. Similarly there will be interfaces from Tallyman to SAP to update SAP of Accounts, that have been marked for write off in Tallyman. Fees and Charges that have been applied in Tallyman, for example court fees, warrant fees etc.
Regards
Shashi
Edited by: shashi jha on Mar 31, 2010 8:10 AM -
Apex 4 , problem with collection executions
Hi ,
I am having the following problem with the execution of one collection :
Reference thread : Re: APEX 4 , executing a remote procedure and populating data using collection
DBNAME ---> list item which I build from the DB links which I built ( as dynamic query in the shared components from a local table which holds entries of dblink names )
USERLIST --> list item of users which should display dynamicaly the users of that db link I choose in DBNAME ( based on a collection )
buttons CANCEL and SUBMIT
4- Initial COLLECTION page process which is calculated before Header :
DECLARE
q varchar2(4000);
BEGIN
IF APEX_COLLECTION.COLLECTION_EXISTS(P_COLLECTION_NAME => 'QRY1') THEN
APEX_COLLECTION.DELETE_COLLECTION(P_COLLECTION_NAME => 'QRY1');
END IF;
q := 'SELECT username , username FROM sys.dba_users@'||:P23_DBNAME ;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B(
P_COLLECTION_NAME => 'QRY1',
P_QUERY => Q);
END;
For USERLIST list item I am using the following in LIST OF VALUES DEFINITION :
SELECT C001, C002 FROM APEX_COLLECTIONS WHERE COLLECTION_NAME='QRY1'
5 - to submit the values from the screen to the remote database procedure I am using the following submit process ON SUBMIT AFTER CALCULATIONS:
DECLARE
v_statement varchar2(255);
BEGIN
v_statement := 'begin
Lock_User@&P24_DBNAME.(''&P24_USERLIST.'');
insert into log values (1,''user locked'') ;
commit ;
end;';
EXECUTE IMMEDIATE v_statement;
END;
The problem :
The form runs sucessfully , where I the USERLIST changes dynamicaly when I change the DBNAME values , but as soon as I logout and login with another user1 , the collection does not execute and i get "ORA-01729: database link name expected".
I login with user1 in edit mode and recreate the collection , run again , the collection executes successfuly .
If I create a new user2 ( using the sample application pages ) and login with the new user2 , i have the same problem , thus I ho login with user2 in edit mode and try to run the collection .
How can I control the collection to execute regardless of the application user logged in ??
thanks in advance
yousefHi ,
I am having the following problem with the execution of one collection :
Reference thread : Re: APEX 4 , executing a remote procedure and populating data using collection
DBNAME ---> list item which I build from the DB links which I built ( as dynamic query in the shared components from a local table which holds entries of dblink names )
USERLIST --> list item of users which should display dynamicaly the users of that db link I choose in DBNAME ( based on a collection )
buttons CANCEL and SUBMIT
4- Initial COLLECTION page process which is calculated before Header :
DECLARE
q varchar2(4000);
BEGIN
IF APEX_COLLECTION.COLLECTION_EXISTS(P_COLLECTION_NAME => 'QRY1') THEN
APEX_COLLECTION.DELETE_COLLECTION(P_COLLECTION_NAME => 'QRY1');
END IF;
q := 'SELECT username , username FROM sys.dba_users@'||:P23_DBNAME ;
APEX_COLLECTION.CREATE_COLLECTION_FROM_QUERY_B(
P_COLLECTION_NAME => 'QRY1',
P_QUERY => Q);
END;
For USERLIST list item I am using the following in LIST OF VALUES DEFINITION :
SELECT C001, C002 FROM APEX_COLLECTIONS WHERE COLLECTION_NAME='QRY1'
5 - to submit the values from the screen to the remote database procedure I am using the following submit process ON SUBMIT AFTER CALCULATIONS:
DECLARE
v_statement varchar2(255);
BEGIN
v_statement := 'begin
Lock_User@&P24_DBNAME.(''&P24_USERLIST.'');
insert into log values (1,''user locked'') ;
commit ;
end;';
EXECUTE IMMEDIATE v_statement;
END;
The problem :
The form runs sucessfully , where I the USERLIST changes dynamicaly when I change the DBNAME values , but as soon as I logout and login with another user1 , the collection does not execute and i get "ORA-01729: database link name expected".
I login with user1 in edit mode and recreate the collection , run again , the collection executes successfuly .
If I create a new user2 ( using the sample application pages ) and login with the new user2 , i have the same problem , thus I ho login with user2 in edit mode and try to run the collection .
How can I control the collection to execute regardless of the application user logged in ??
thanks in advance
yousef -
Using collections and experiencing slow response
I am experiencing slow response when using htmldb_collection. I was hoping someone might point me in another direction or point to where the delay may be occurring.
First a synopsis of what I am using these collections for. The main collections are used in order to enable the users to work with multiple rows of data (each agreement may have multiple inbound and outbound tiered rates). These collections, OBTCOLLECTION and IBTCOLLECTION, seem to be fine. The problem arises from the next set of collections.
OBTCOLLECTION and IBTCOLLECTION each contain a field for city, product, dial code group and period. Each of these fields contains a semi-colon delimited string. When the user chooses to view either the outbound tiers (OBTCOLLECTION) or the inbound tiers (IBTCOLLECTION), I generate four collections based on these four fields, parsing the delimited strings, for each tier (record in the OBT or IBT collection). Those collections are used as the bases for multiple select shuttles when the user edits an individual tier.
Here is the collection code for what I am doing.
When the user chooses an agreement to work with, by clicking on an edit link, they are sent to page 17 (as you see referenced in the code). That page has the on-demand process below triggered on load, after footer.
-- This process Loads the collections used
-- for the Inbound and Outbound tier details
-- OBTCOLLECTION
-- IBTCOLLECTION
-- It is an on-demand process called on load (after footer) of page 17 --
-- OUTBOUND TIER COLLECTION --
if htmldb_collection.collection_exists( 'OBTCOLLECTION') = TRUE then
htmldb_collection.delete_collection(p_collection_name => 'OBTCOLLECTION' );
end if;
htmldb_collection.create_collection_from_query(
p_collection_name => 'OBTCOLLECTION',
p_query => 'select ID, AGREEMENT_ID, FIXED_MOBILE_ALL,
OF_TYPE,TIER, START_MIN, END_MIN,
REVERT_TO, RATE,CURRENCY,
PENALTY_RATE, PENALTY_CURR,
PRODUCT,CITY, DIAL_CODE_GROUP, PERIOD,
to_char(START_DATE,''MM/DD/YYYY''),
to_char(END_DATE,''MM/DD/YYYY''),
MONTHLY,EXCLUDED,
''O'' original_flag
from outbound_tiers
where agreement_id = '''||:P17_ID ||'''
order by FIXED_MOBILE_ALL, ID',
p_generate_md5 => 'YES');
-- INBOUND TIER COLLECTION --
if htmldb_collection.collection_exists( 'IBTCOLLECTION') = TRUE then
htmldb_collection.delete_collection(p_collection_name => 'IBTCOLLECTION' );
end if;
htmldb_collection.create_collection_from_query(
p_collection_name => 'IBTCOLLECTION',
p_query => 'select ID, AGREEMENT_ID, FIXED_MOBILE_ALL,
OF_TYPE,TIER, START_MIN, END_MIN,
REVERT_TO, RATE,CURRENCY,
PENALTY_RATE, PENALTY_CURR,
PRODUCT,CITY, DIAL_CODE_GROUP, PERIOD,
to_char(START_DATE,''MM/DD/YYYY''),
to_char(END_DATE,''MM/DD/YYYY''),
MONTHLY,EXCLUDED,
''O'' original_flag
from inbound_tiers
where agreement_id = '''||:P17_ID ||'''
order by FIXED_MOBILE_ALL, ID',
p_generate_md5 => 'YES');
commit;The tables each of these collections is created from are each about 2000 rows.
This part is working well enough.
Next, when the user chooses to view the tier information (either inbound or Outbound) they navigate to either of two pages that have the on-demand process below triggered on load, after header.
-- This process Loads all of the collections used
-- for the multiple select shuttles --
-- DCGCOLLECTION
-- CITYCOLLECTION
-- PRODCOLLECTION
-- PRDCOLLECTION
-- It is an on-demand process called on load (after footer) --
DECLARE
dcg_string long;
dcg varchar2(100);
city_string long;
the_city varchar2(100);
prod_string long;
prod varchar2(100);
prd_string long;
prd varchar2(100);
end_char varchar2(1);
n number;
CURSOR shuttle_cur IS
SELECT seq_id obt_seq_id,
c013 product,
c014 city,
c015 dial_code_group,
c016 period
FROM htmldb_collections
WHERE collection_name = 'OBTCOLLECTION';
shuttle_rec shuttle_cur%ROWTYPE;
BEGIN
-- CREATE OR TRUNCATE DIAL CODE GROUP COLLECTION FOR MULTIPLE SELECT SHUTTLES --
htmldb_collection.create_or_truncate_collection(
p_collection_name => 'DCGCOLLECTION');
-- CREATE OR TRUNCATE CITY COLLECTION FOR MULTIPLE SELECT SHUTTLES --
htmldb_collection.create_or_truncate_collection(
p_collection_name => 'CITYCOLLECTION');
-- CREATE OR TRUNCATE PRODUCT COLLECTION FOR MULTIPLE SELECT SHUTTLES --
htmldb_collection.create_or_truncate_collection(
p_collection_name => 'PRODCOLLECTION');
-- CREATE OR TRUNCATE PERIOD COLLECTION FOR MULTIPLE SELECT SHUTTLES --
htmldb_collection.create_or_truncate_collection(
p_collection_name => 'PRDCOLLECTION');
-- LOAD COLLECTIONS BY LOOPING THROUGH CURSOR.
OPEN shuttle_cur;
LOOP
FETCH shuttle_cur INTO shuttle_rec;
EXIT WHEN shuttle_cur%NOTFOUND;
-- DIAL CODE GROUP --
dcg_string := shuttle_rec.dial_code_group ;
end_char := substr(dcg_string,-1,1);
if end_char != ';' then
dcg_string := dcg_string || ';' ;
end if;
LOOP
EXIT WHEN dcg_string is null;
n := instr(dcg_string,';');
dcg := ltrim( rtrim( substr( dcg_string, 1, n-1 ) ) );
dcg_string := substr( dcg_string, n+1 );
if length(dcg) > 1 then
htmldb_collection.add_member(
p_collection_name => 'DCGCOLLECTION',
p_c001 => shuttle_rec.obt_seq_id,
p_c002 => dcg,
p_generate_md5 => 'NO');
end if;
END LOOP;
-- CITY --
city_string := shuttle_rec.city ;
end_char := substr(city_string,-1,1);
if end_char != ';' then
city_string := city_string || ';' ;
end if;
LOOP
EXIT WHEN city_string is null;
n := instr(city_string,';');
the_city := ltrim( rtrim( substr( city_string, 1, n-1 ) ) );
city_string := substr( city_string, n+1 );
if length(the_city) > 1 then
htmldb_collection.add_member(
p_collection_name => 'CITYCOLLECTION',
p_c001 => shuttle_rec.obt_seq_id,
p_c002 => the_city,
p_generate_md5 => 'NO');
end if;
END LOOP;
-- PRODUCT --
prod_string := shuttle_rec.product ;
end_char := substr(prod_string,-1,1);
if end_char != ';' then
prod_string := prod_string || ';' ;
end if;
LOOP
EXIT WHEN prod_string is null;
n := instr(prod_string,';');
prod := ltrim( rtrim( substr( prod_string, 1, n-1 ) ) );
prod_string := substr( prod_string, n+1 );
if length(prod) > 1 then
htmldb_collection.add_member(
p_collection_name => 'PRODCOLLECTION',
p_c001 => shuttle_rec.obt_seq_id,
p_c002 => prod,
p_generate_md5 => 'NO');
end if;
END LOOP;
-- PERIOD --
prd_string := shuttle_rec.period ;
end_char := substr(prd_string,-1,1);
if end_char != ';' then
prd_string := prd_string || ';' ;
end if;
LOOP
EXIT WHEN prd_string is null;
n := instr(prd_string,';');
prd := ltrim( rtrim( substr( prd_string, 1, n-1 ) ) );
prd_string := substr( prd_string, n+1 );
if length(prd) > 1 then
htmldb_collection.add_member(
p_collection_name => 'PRDCOLLECTION',
p_c001 => shuttle_rec.obt_seq_id,
p_c002 => prd,
p_generate_md5 => 'NO');
end if;
END LOOP;
END LOOP;
CLOSE shuttle_cur;
commit;
END;Creating these collections from the initial collection is taking way too long. The page is rendered after about 22 seconds (when tier collection has 2 rows) and 10 minutes worst case (when the tier collection has 56 rows).
Thank you in advance for any advice you may have.Try to instrument/profile your code by putting timing statements after each operation. This way you can tell which parts are taking the most time and address them.
-
Varray of Objects: Initializing, Instantiation, Constructors, ORA-06531
This is supposed to fill a varray with ten objects, calling methods in those objects and populating the objects from queries, then display fields from the objects via methods. Error message is in comment at bottom. Any ideas?
-- Enable screen I/O
SET SERVEROUTPUT ON SIZE 1000000
SET VERIFY OFF
-- object spec
CREATE OR REPLACE TYPE employee4 AS OBJECT
o_ename CHAR (20 char),
o_empno NUMBER (4),
o_sal NUMBER (10),
o_thisno NUMBER (4),
MEMBER FUNCTION get_o_ename RETURN CHAR, MEMBER PROCEDURE set_o_ename (o_thisno IN number),
MEMBER FUNCTION get_o_empno RETURN NUMBER, MEMBER PROCEDURE set_o_empno (o_thisno IN number),
MEMBER FUNCTION get_o_sal RETURN NUMBER, MEMBER PROCEDURE set_o_sal (o_thisno IN number),
CONSTRUCTOR FUNCTION employee4 (o_ename CHAR,o_empno NUMBER,o_sal NUMBER,o_thisno NUMBER) RETURN SELF AS RESULT
-- object body
CREATE OR REPLACE TYPE BODY employee4 AS
CONSTRUCTOR FUNCTION employee4 (o_ename IN CHAR,
o_empno IN NUMBER,
o_sal IN NUMBER,
o_thisno IN NUMBER)
RETURN SELF AS RESULT IS
BEGIN
SELF.o_ename := o_ename;
SELF.o_empno := o_empno;
SELF.o_sal := o_sal;
SELF.o_thisno := o_thisno;
RETURN;
END;
-- gets
MEMBER FUNCTION get_o_ename RETURN CHAR IS
BEGIN
RETURN self.o_ename;
END;
MEMBER FUNCTION get_o_empno RETURN NUMBER IS
BEGIN
RETURN self.o_empno;
END;
MEMBER FUNCTION get_o_sal RETURN NUMBER IS
BEGIN
RETURN self.o_ename;
END;
-- sets
MEMBER PROCEDURE set_o_ename(o_thisno IN number) IS
BEGIN
SELECT ename INTO SELF.o_ename FROM emp WHERE empno = SELF.o_thisno;
END;
MEMBER PROCEDURE set_o_empno(o_thisno IN number) IS
BEGIN
SELECT empno INTO SELF.o_empno FROM emp WHERE empno = SELF.o_thisno;
END;
MEMBER PROCEDURE set_o_sal(o_thisno IN number) IS
BEGIN
SELECT sal INTO SELF.o_sal FROM emp WHERE empno = SELF.o_thisno;
END;
END;
DECLARE
-- a varray of employees
TYPE emp_varray1 IS VARRAY(10) OF employee4;
varray_of_emps EMP_VARRAY1;
-- List of EMPNO's in order of appearance in EMP table (for cross-referencing, single-line retrieval)
TYPE MYCREF_VARRAY IS VARRAY(10) OF NUMBER(4);
varray_mycref MYCREF_VARRAY := MYCREF_VARRAY(NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
-- make a variable to store one empno
thisno NUMBER(4);
-- make a counter
counter INT;
-- query variables for the set calls
q_ename CHAR(20 CHAR);
q_empno NUMBER(4);
q_sal NUMBER(10);
BEGIN
-- Put the first 10 EMPNO's in my cref array
SELECT empno BULK COLLECT INTO varray_mycref FROM emp WHERE ROWNUM < 11;
-- Use a loop to retrieve the first 10 objects in the "emp" table and put them in the varray of objects
FOR counter IN 1..10 LOOP
thisno := varray_mycref(counter);
varray_of_emps(counter).set_o_ename(thisno);
varray_of_emps(counter).set_o_empno(thisno);
varray_of_emps(counter).set_o_sal(thisno);
END LOOP;
-- Use another loop to display the information in the reverse order.
FOR counter in REVERSE 1..10 LOOP
dbms_output.put_line((varray_of_emps(counter).get_o_ename()) || CHR(9) || (varray_of_emps(counter).get_o_empno()) || CHR(9) || (varray_of_emps(counter).get_o_sal()));
END LOOP;
END;
This results in the following response in SQL*PLUS:
Type created.
Type body created.
DECLARE
ERROR at line 1:
ORA-06531: Reference to uninitialized collection
ORA-06512: at line 33Hi,
From metalink:
Cause: An element or member function of a nested table or varray was
referenced (where an initialized collection is needed) without the
collection having been initialized.
Action: Initialize the collection with an appropriate constructor or
whole-object assignment.
ORA 6531 Reference to uninitialized collection (Doc ID 48912.1) -
Is a created collection automatically cached per session.
Hi,
I am implementing custom security using a PLSQL package. In my LogIn function I create a collection and I store user information. In the IsLoggedIn function I check to see if the collection exists but it does not. I was wondering if when calling create_or_truncate_collection the collection is automatically called in the session.
Thanks,
BasharBashar,
It would be better if you did not try to implement a custom authentication solution at this point. The out-of-the box session management and credentials verification using the wizard-generated login page should meet your needs. If you have your own username/password table, you can call your own function to do that piece of the work only, then let HTML DB handle everything else.
To create the collection, you could add a process to the login page (after the login process), or create a before-header application-level process that fires conditionally when v('APP_USER') <> 'nobody' and the collection does not exist (this will fire it once, but not on the login page). You say you want to avoid "hitting the database every time". Why? Is the initial collection creation step expensive? If not, be aware that each time you access that collection, you will hit the database.
For more detailed explanation of how authentication schemes work, I recommend that you create a few with different built-in/custom component combinations. Then for each one, go to the authentication schemes report and click the popup flowchart view (the magnifying glass icon). Carefully read the narrative that describes the logic flow of each scheme, i.e., what the engine will do at each step, where it uses your custom code and where it uses built-in logic. This will give you the best instruction about how it all works.
Scott -
Hi,
First sorry about the long post but any help would be really appreciated. I can't seem to get iscsi working what am i doing wrong?
May 24 09:53:39 edsrvscdm-01 iscsi: NOTICE: iscsi connection(5) unable to connect to target iqn.1992-08.com.netapp:sn.135042183
bash-3.00# iscsiadm list target -v
Target: iqn.1992-08.com.netapp:sn.135042183
Alias: -
ISID: 4000002a0000
Connections: 0
Discovery Method: Static
Login Parameters (Negotiated):
Data Sequence In Order: -
Data PDU In Order: -
Default Time To Retain: -
Default Time To Wait: -
Error Recovery Level: -
First Burst Length: -
Immediate Data: -
Initial Ready To Transfer (R2T): -
Max Burst Length: -
Max Outstanding R2T: -
Max Receive Data Segment Length: -
Max Connections: -
Header Digest: -
Data Digest: -
This is the setup I have done:
# svcadm enable network/iscsi/initiator
Collect the IQN number of the system.
# iscsiadm list initiator-node
Initiator node name: iqn.1986-03.com.sun:01:00144fa05cee.4ddb6b11
Initiator node alias: edsrvscdm-01
Login Parameters (Default/Configured):
Header Digest: NONE/-
Data Digest: NONE/-
Authentication Type: NONE
RADIUS Server: NONE
RADIUS access: unknown
Tunable Parameters (Default/Configured):
Session Login Response Time: 60/-
Maximum Connection Retry Time: 180/-
Login Retry Time Interval: 60/-
Configured Sessions: 1
Create an lun on netapp filer
lun setupThis setup will take you through the steps needed to create LUNs
and to make them accessible by initiators. You can type ^C (Control-C)
at any time to abort the setup and no unconfirmed changes will be made
to the system.
Do you want to create a LUN? [y]: y
Multiprotocol type of LUN
(solaris/windows/hpux/aix/linux/netware/vmware/windows_gpt/windows_2008/xen/hyper_v/solaris_efi)
[linux]: solaris
A LUN path must be absolute. A LUN can only reside in a volume or
qtree root. For example, to create a LUN with name "lun0" in the
qtree root /vol/vol1/q0, specify the path as "/vol/vol1/q0/lun0".
Enter LUN path: /vol/edsrvss_01_iscsi/lun0
A LUN can be created with or without space reservations being enabled.
Space reservation guarantees that data writes to that LUN will never
fail.
Do you want the LUN to be space reserved? [y]: n
Size for a LUN is specified in bytes. You can use single-character
multiplier suffixes: b(sectors), k(KB), m(MB), g(GB) or t(TB).
Enter LUN size: 40873m
You can add a comment string to describe the contents of the LUN.
Please type a string (without quotes), or hit ENTER if you don't
want to supply a comment.
Enter comment string: lun for edsrvscdm-01
The LUN will be accessible to an initiator group. You can use an
existing group name, or supply a new name to create a new initiator
group. Enter '?' to see existing initiator group names.
Name of initiator group []: group0
Type of initiator group group0 (FCP/iSCSI) [FCP]: iSCSI
An iSCSI initiator group is a collection of initiator node names.Each
node name can begin with either 'eui.' or 'iqn.' and should be in the
following formats: eui.{EUI-64 address} or iqn.yyyy-mm.{reversed domain
name}:{optional string composed of alphanumeric characters, '-', '.'
and ':'}
Eg: iqn.2001-04.com.acme:storage.tape.sys1.xyz or eui.02004567A425678D
You can separate node names by commas. Enter '?' to display a list of
connected initiators. Hit ENTER when you are done adding node names to
this group.
Enter comma separated nodenames: iqn.1986-03.com.sun:01:00144fa05cee.4ddb6b11
Enter comma separated nodenames:
The initiator group has an associated OS type. The following are
currently supported: solaris, windows, hpux, aix, linux, netware,
vmware, xen or hyper_v.
OS type of initiator group "group0" [solaris]:
The LUN will be accessible to all the initiators in the
initiator group. Enter '?' to display LUNs already in use
by one or more initiators in group "group0".
LUN ID at which initiator group "group0" sees "/vol/edsrvss_01_iscsi/lun0" [0]:
LUN Path : /vol/edsrvss_01_iscsi/lun0
OS Type : solaris
Size : 39.9g (42858446848)
Comment : lun for edsrvscdm-01
Initiator Group : group0
Initiator Group Type : iSCSI
Initiator Group Members : iqn.1986-03.com.sun:01:00144fa05cee.4ddb6b11
Mapped to LUN-ID : 0
Do you want to accept this configuration? [y]:
Tue May 24 10:34:01 BST [lun.map:info]: LUN /vol/edsrvss_01_iscsi/lun0 was mapped to initiator group group0=0
Do you want to create another LUN? [n]:
lun show
/vol/edsrvss_01_iscsi/lun0 39.9g (42858446848) (r/w, online, mapped)
iscsi nodename
iSCSI target nodename: iqn.1992-08.com.netapp:sn.135042183
Set up the Solaris host to find the new lun:
iscsiadm modify discovery --static enable
iscsiadm add static-config iqn.1992-08.com.netapp:sn.135042183,10.21.17.30
Check it appears on the system:
iscsiadm list static-config
Static Configuration Target: iqn.1992-08.com.netapp:sn.135042183,10.21.17.30:3260
iscsiadm list target
Target: iqn.1992-08.com.netapp:sn.135042183
Alias: -
ISID: 4000002a0000
Connections: 0
Rescan the system to check for the new iscsi disk:
devfsadm -Cv -i iscsi
Chrisopps forgot to enable iscsi on the filer! Enabled and all seems to be workin!
-
Passing table of varray to a procedure
Hi,
I have a procedure which takes the following parameters:
create or replace
PROCEDURE VECTORSUMMARYSTATISTICS
chartOption IN CHARTOPTION,
userChoicedate IN C_TAB,
AllCases IN boolean,
strVector_id VARCHAR2,
strEntityName VARCHAR2,
CollectionName VARCHAR2
) AS
C_TAB is a type created on the database:
create or replace
TYPE C_TAB AS TABLE OF C_REC;
And C_REC:
create or replace
TYPE C_REC AS OBJECT
time_value TIMESTAMP
In the body of the procedure I am using the table "userChoicedate" in the following way:
for idx in userChoicedate.first..userChoicedate.last
loop
tuserdate_rec:=userChoicedate(idx); //table passed from the parameter
tuserdate.extend(1);
tuserdate(idx):=tuserdate_rec;
end loop;
where tuserdate_rec is declared in the following way:
--record for holding a single user date
tuserdate_rec C_REC;
Before executing this procedure from pl/sql I am filling some test date from another pl/sql page:
percRec2 C_REC;
result_tab C_TAB;
result_tab:=C_TAB();
result_tab.extend(10);
percRec2:=C_REC(TO_TIMESTAMP('01-01-2004 12:00:00.000', 'DD-MM-YYYY HH:MI:SS.FF3') );
result_tab(1):=percRec2;
percRec2:=C_REC(TO_TIMESTAMP('01-04-2004 12:00:00.000', 'DD-MM-YYYY HH:MI:SS.FF3') );
result_tab(2):=percRec2;
percRec2:=C_REC(TO_TIMESTAMP('01-07-2004 12:00:00.000', 'DD-MM-YYYY HH:MI:SS.FF3'));
result_tab(3):=percRec2;
percRec2:=C_REC(TO_TIMESTAMP('01-10-2004 12:00:00.000', 'DD-MM-YYYY HH:MI:SS.FF3'));
result_tab(4):=percRec2;
So when calling the procedure:
VECTORSUMMARYSTATISTICS(ch,result_tab,FALSE,'WBHP','PRD3','CaseCollection1');
I am getting the following error message:
Error report:
ORA-06531: Reference to uninitialized collection
ORA-06512: at "SIMSERVER.VECTORSUMMARYSTATISTICS", line 184
ORA-06512: at line 54
06531. 00000 - "Reference to uninitialized collection"
*Cause: An element or member function of a nested table or varray
was referenced (where an initialized collection is needed)
without the collection having been initialized.
*Action: Initialize the collection with an appropriate constructor
or whole-object assignment.
So here at this line in bold the problem is:
For idx in userChoicedate.first..userChoicedate.last
loop
tuserdate_rec:=userChoicedate(idx);
tuserdate.extend(1);
tuserdate(idx):=tuserdate_rec;
end loop;
Any help
Thanks
Message was edited by:
user646975Hi,
Are u sure cause always the procedure is not compiling
This time I got the following problem:
Error(182,11): PLS-00103: Encountered the symbol "(" when expecting one of the following: in The symbol "in" was substituted for "(" to continue.
Error(320,71): PLS-00103: Encountered the symbol "GROUP" when expecting one of the following: , from into bulk -
IOS8 ****! Music synching problems.
Since updating to iOS8 I have had relentless problems with my music on my iPhone. I have a 64GB iPhone 5S and have never encountered problems before updating the software to iOS8 and the updates that have followed are making matters worse.
At first, it would delete all the album artwork from the phone and now subsequent updates now have my music being deleted apart from those bought within iTunes and the 'other' bar on the phone is over 40GB which doesn't allow me to re-add my music.
I have called Apple and they claim I'm the "only person" to experience this, although a quick google search proves otherwise. After going through some convoluted "solutions" for an hour or so, the call always ends with me being told to restore my phone from scratch which works fine until I try and sync it and then it's back to square one. I am currently restoring my phone for the fourth time within a week and am furious.
I have a LOT of music on my phone (8000+ songs) and the syncs now take five hours to put it back on. Apple don't seem to have a clue and claim you can't revert to the far more reliable iOs7. To me, iOS8 is like installing a virus on my phone and I dread updating it (though I do in the vain hope that someone has bothered to fix this issue) as much as I do synching it. This has only happened since the awful iOS8 was installed.
Am I alone in this?hi, I can confirm I have had similar issues since I upgraded to an 64 GB iPhone 6 with ios8 last September. Never had issues before with my iPhone 4S and ios 6 or 7.
What happens is that some tracks or complete albums are randomly deleted on my iPhone. More precisely they appear as grey and cannot be read or downloaded. The only solution I have found so far is to synchronise my iPhone with iTunes on my computer : all the deleted tracks then appear again, but after a few hours, new tracks disappear.
It happens on any type of music : new or older tracks I purchased on iTunes with my iPhone, or tracks initially collected from my personal CDs... it seems that there is no rule...
I have around 1500 tracks in total by the way.
I thought the few ios 8 updates would correct the issue, but it seems that it is getting worse weeks after weeks...
Is there anyone from apple who can answer us on this community discussion?
thanks -
Investment order settlement?
hi
can anyone tell me why we settle investment order on AUC and not on cost centre.
regards
sanjay nandaHi,
COST CENTER--->The costs that arise from processing an order (for example, costs for material, personnel or external services) have the individual technical objects (equipment, functional locations) as a reference object.
The costs are initially collected on the order. They are then transferred to the settlement receiver specified in the settlement rule. The receiver of the costs is independent of the reference object, which merely provides a proposal.
AUC--->>Special order that settles the costs of an investment measure to an asset under construction (AuC).
Investment measures are used to create new assets or maintain existing assets to increase their value, which you must then capitalize.
You can settle the costs that have been collected on an investment order to an AuC. In this case, the system automatically generates a settlement rule for the AuC when the costs are first settled. If some of the costs collected on the order are to go into the costs settlement, then you can create another settlement rule (preliminary settlement) manually for these costs.
You can test particular settlements to find out which type of settlement is most suitable for you. To simulate depreciation for an order, choose the tab page Investment in the investment order and then Depreciation simulation. The system saves the data from the depreciation simulation. The order subsequently receives a corresponding status.
As soon as the fixed asset is completed, you can create and process your data from the order. In the case of full settlement, the system posts the values that were originally on the AuC to the completed fixed asset.
Regards,
Rakesh -
Oracle intelligent agent failure
Hi,
I am on windows 2000 server running Oracle 9i database and I cannot start the intelligent agent for database 9i it keeps giving the ,message that it is idle therefore was stopped. When I start it in dos it dumps the message belog in its log. I would like to use the OEM to manage my database but can't because the OMS cannot detect my nodes cos the agent is not running. Please assist.
The message
Service name is Oracleoracle9_HomeAgent
Failed while initializing Collection Service
Error initializing subsystems
Agent exited on with return value 55
Could not start agent. Initialization failure
Agent startup failed. Check F:\ora9i\network\log\Oracleoracle9_HomeAgent.nohup for detailsHi,
check for the time zone.
In my case it was solved when I was creating a system environment variable named TZ and choosed a valid content, see metalink for timezone problems:
nsupportedtzs.lst
supportedtzs.lst
in the sysman\admin should have a common denominator.
Regards
Matthias -
Freezing when passing the songs from iTunes to iPod
After I bought the 60gb video iPod I had a problem to send the music from my iTunes. If I use the automatic method, the transfer freezes after 200 or 300 songs were transfered. If I use the manual method and copy groups of 200 songs each it will go until the end of my 5.000 songs.
I would prefer to keep the automatic updating.
Any idea of how to solve this problem?
Thank you.I have resigned myself to try to set iTunes to manual sync - at least until the initial collection has been transferred. It will take a while, and I am sure that once done the world will be right again, the clouds will part and the angels will weep. Until then however, I'm wondering if it was worth the upgrade since my old iPod (3g 20gb) would sync just fine on FW.
The question still remains (in my feeeble mind) why Apple would "degrade" the iPod capability to use only USB - a technology which has never (again in my mind) worked properly and by that I mean up to spec.
Aren't you suppose to be able to connect over 100 devices to a single USB chain? Heck, I can't get more than a couple devices connected (using self powered USB hubs of course) before things start to fail. -
Starting the Oracle Intelligent Agent on Linux/390
I have recently installed Oracle Developer's Edition on SuSE Linux/390. When I try to start the Intelligent Agent, I get the following error.
------------------------ Mon Jun 3 11:59:43 EDT 2002 ------------------------
Certain conflicts were resolved during discovery
Please consult /oracle/product/9.0.1/network/log/nmiconf.log for details
Error: Failed to get directory/file info from environment
Failed while initializing Collection Service
Error initializing subsystems
Agent exited at Mon Jun 3 11:59:45 EDT 2002 with return value 55
Could not start agent. Initialization failure
Contents if nmiconf.log:
DBSNMP for Linux 2.4.7-SuSE-SMP: release 9.0.1 - Developer's Release on 03-JUN-02 11:59:43
Discovering services on linux1 configured on host addresses {linux1.dowjones.com 172.26.151.11}
Using oratab file /var/opt/oracle/oratab
Warning : problem getting ops version for /oracle/product/9.0.1 : CIDW
Any assistance would be greatly appreciated.I don't think the Intelligent Agent is included with the developers release -
check the directory where it's supposed to be, I think you'll find it's not there.
You only need IA to start/stop the database from oem and schedule jobs.
I use OEM to control my instance and run performance packs etc, IA isn't needed for this. -
Dynamically Accessing a PL/SQL Table
If I have 2 plsql tables :
vt1_games and vt2_games that I usuallly update with the
following:
vt1_games(vt1_count).team1_num := ......
or
vt2_games(vt2(count).team1_num := ......
How can I use a variable for the plsql table name and pointer?
Thanks,
PaulIn full agreement with Guido's suggestion, i think too, there are not so many choices, one possible solution could be
SQL> create table dept_sal(deptno number,sal number);
Table created.
SQL> declare
2 type emp_r is record(
3 deptno emp.deptno%type,
4 sal emp.sal%type);
5 type emp_t is table of emp_r index by binary_integer;
6 l_emp emp_t;
7 l_dept emp_t;
8 begin
9 -- populate initial collection
10 select deptno, sal bulk collect into l_emp from emp;
11
12 for i in l_emp.first .. l_emp.last loop
13 l_dept(l_emp(i).deptno).deptno :=l_emp(i).deptno;
14 l_dept(l_emp(i).deptno).sal := nvl(l_dept(l_emp(i).deptno).sal,0) + l_emp(i).sal;
15 end loop;
16
17 forall i in indices of l_dept
18 insert into dept_sal values l_dept(i);
19 end;
20 /
PL/SQL procedure successfully completed.
SQL> select * from dept_sal;
DEPTNO SAL
10 8750
20 10875
30 9400In other words, about 20 lines of code to implement
insert into dept_sal select deptno,sum(sal) from emp group by deptno;Best regards
Maxim -
Hi,
I need to set-up settlement of a service order. Can anyone tell how to go about it? To which elements does usually a service order settles? Primary/Secondary, is secondary the how does it get posted to G/L ?
Thanks,
Pankaj.hi pankaj..
Settlement takes place through settlement rules you have created for the order.The costs are initially collected on the order. They are then transferred to the settlement receiver (Fixed asset ,Cost center ,WBS element,Order ,G/L ccount ,Material ,Asset under construction etc)specified in the settlement rule.
You can settle an order if:
1.It is released
2.It has the status Settlement rule created
3.Costs collected for it have not yet been settled
4.A business completion has not yet been performed for it
Creating a Settlement Rule Manually
Call up the order in change mode.
Choose Settlement rule.
The following cases can occur:
If a settlement rule already exists for the order, you reach the screen Maintain Settlement Rule: Overview directly.
Check the settlement rule.
To change it, go to detail data on the Maintain Settlement Rule: Distribution Rules screen, where you can make additional entries.
If a settlement rule does not yet exist for the order, you must first specify whether you want to maintain the settlement rule with or without the system proposal for the distribution rule. A screen appears where you can maintain the settlement rule.
Make all the necessary entries on this screen.
Return to the order and save it.
I think this will help you
kkumar
Maybe you are looking for
-
Create Recovery Media low disk space on C error
Hey everyone, When I tried to create a recovery disc on my X301 Windows 7 to free up the partition, I got an error saying "No enough temporary disk space in C drive, Create Recovery Media will exit now." How much space do I need to free up on my C dr
-
Can anyone tell me WHY Oracle won't allow sub-queries in outer joins?
Hi, I've recently been tasked with converting a series of InterBase dbs to Oracle. Many of the queries in the InterBase dbs use sub-queries in outer joins. Oracle won't countenance this (01799 - a column may not be outer-joined to a subquery). I can
-
FND_WEB_SEC.Validate_Login
I have modified the fnd_web_sec.validate_login to integrate with Novell Active Directory. I have created a new function and validating the Active Directory using DBMS_LDAP call. I am calling this function in the fnd_web_sec.validate_login. It works f
-
Windows 7 upgrade program error: Compaq serial key not recognized.
Hi, I recently (5th of August 2009) bought an Compaq Presario CQ 5030 running on Windows Vista Home Premium. I was told that i could get a free upgrade for this computer to windows 7 when it was to be released. However, when I try to order my copy of
-
How can I tel a story , so that when you read a line the tekst slowy goes up
Hello,.. to start the movie, l want to tell a story first ( 2 A4 of tekst) and it must be so that if you read a few line they slowly will go up so that you can read the rest. Help thanks jan van straten