Object type and a Type of record
What is the difference between the type and the type of recording?TYPE OBJ_TYP IS OBJECT (
ENAME VARCHAR2(30),
EAGE NUMBER(2),
ESAL NUMBER
)
TYPE REC_TYP IS RECORD (
ENAME VARCHAR2(30),
EAGE NUMBER(2),
ESAL NUMBER
)
The two even looks like me and just I see the difference in keyword. Is there a functional difference to hide?PLS, excuse my stupidity.
Sunny
The first is a type of object oriented class. It can have custom constructors, methods and can be used as a type of SQL data in the SQL engine - even as the data type for a SQL column in a table SQL.
This one is a pure (and clear) record structure - similar to the structure record in Pascal/Ada, or as the struct in C/C++. It can only be used in the engine of PL.
Tags: Database
Similar Questions
-
How to create a type of record and a pl/sql table of this record type in the database
Hello
I want to create a record type, and then I want to create a PL/SQL table in the oracle 9i database.
I did block PL/SQL.
But when I'm doing it in the database it throws me a few errors.
Could you please tell me how can I do?
Concerninguser576726 wrote:
Hello
I want to create a record type, and then I want to create a PL/SQL table in the oracle 9i database.
I did block PL/SQL.
But when I'm doing it in the database it throws me a few errors.
Could you please tell me how can I do?Concerning
RECORD type is only supported in PL/SQL for SQL, you must use the OBJECT type.
-
Simultaneity and Oracle Object Types
Hi all
I have a question about the simultaneous use of a type of object in Oracle.
I have a java program that calls a stored proc Oracle with the type of the object as a parameter. In my stored proc, I'm filling of an Oracle object with data from java and retrieve data on this basis.
My java program can be invoked simultaneously by 500 users at the same time - the application is built to handle this load of the application.
Now in Oracle, if a bunch of requests arrive at the same time, Oracle would create multiple instances of this object type which would be its use for multiple stored procedure calls? Or is there a prob of concurrency?
If creating multiple instances is not supported, is there a solution that I can use?
My code looks roughly like:
Object:
contains two columns - name, age
Stored proc - logic to retrieve and return data in a table based on the name, received age.
When a bunch of requests to access simultaneously the proc stored, will be created a bunch of instnaces of the object type? Or is there a scenario where the object is shared by all applications, and therefore the data of a query would be inconsistent due to data from another application?An instance of object in a stored procedure is just a variable fantasy, so he is deprived of the session.
-
BEAK and an unknown object type
Hi all
y at - it anyway how to link an instance of 'unknown' object (object named type) with OIC? I mean:
-J' have a schema and typename and values/object attributes in a hash of the user structure.
-I can find an object with OCITypeByName() type
-I can create the new instance with OCIObjectNew()
- , but I have no C struct for the data of the object. And now I need set attributes. But I don't know how. Is it possible to use something like OCISetAttr() with a void pointer returned by OCIObjectNew()?
- Then I cn call OCIBindByPos() with OCIBindObject() - but I do not have the structure and the structure null here, too.
Thanks for the tips,
PetrHello
You can use OCIObjectGetAttr() and OCIObjectGetAttr() using the member names (it's a bit slow but it does the job)
But these calls are buggy when OIC are initialized in UTF16 mode. It was fixed to 11 GR 2.
If you do not need to work with Unicode, and then use these functions
If you need Unicode, make sure that you use a client of GR 11, 2.Because I needed support for UTF16 OCILIB library and I could not wait for Oracle to correct, I had to find another way to do.
So it is possible to navigate through the handle of the object and assume the position (offset) of members, but you must calculate the padding...
It's a little tricky... you can a have a look at the code source OCILIB if you need to.Kind regards
Vincent
-
Filter for a specific value object type
I would like to know if the documents loaded on an object type can be interrogated for a specific value. For ex, I wanted to fetch all the records of the emp and load it into an object. I wanted to ask the object out of the loop to query for a specific deptno. I understand a query simpe SQL would be much faster in the scenario below, but the report itself used in our system uses several tables and some of them have millions of records from different sources as accounts suppliers, accounts receivable, accounting, etc. and they are treated differently for each source before that the result will be published the report. I took the table emp for example and wanted to know if the type of object can be queried for a specific column outside the loop.
DECLARE
CURSOR cur_emp IS SELECT * FROM EMP;
TYPE emp_obj IS TABLE OF cur_emp % ROWTYPE INDEX BY PLS_INTEGER;
l_emp_tab emp_obj;
BEGIN
OPEN cur_emp.
LOOP
Get the cur_emp COLLECT LOOSE l_emp_tab LIMIT 1000;
EXIT WHEN l_emp_tab.count = 0;
BECAUSE me IN 1.l_emp_tab.count
Loop
dbms_output.put_line (' Ename:' | l_emp_tab (i) .ename |', Deptno:' | .deptno l_emp_tab (i));
END LOOP;
END LOOP;
-Can I ask specific employee to a deptno outside the loop FOR without using a temporary table
-something like "SELECT * FROM TABLE (type_name) WHERE DEPTNO = x_Deptno.
END;
/
In a collection of table selection is not effective, there are better ways to do it.
Why not create a view?
create view...
Select * from source1 Union all the
Select * from source2 Union all the
Select * from source3
-or-
Using ref cursor return... clause, so you can make conditional cursors
If somecondition then
Open the NEWS for
Select * source1;
on the other
Open the NEWS for
Select * from source2.
end if;
-or-
Dynamics based SQL ref cursor
DECLARE
TYPE EmpCurTyp IS REF CURSOR;
v_emp_cursor EmpCurTyp;
employees emp_record % ROWTYPE;
v_stmt_str VARCHAR2 (200);
v_e_job employees.job%TYPE;
BEGIN
-Dynamic SQL statement with placeholder:
v_stmt_str: = ' SELECT * FROM employees WHERE job_id =: I;
-Open the cursor & specify bind argument in the USING clause:
V_emp_cursor OPEN FOR v_stmt_str with the HELP of 'MANAGER ';
-Extraction of the lines of result set one at a time:
LOOP
SEEK v_emp_cursor INTO emp_record;
EXIT WHEN v_emp_cursor % NOTFOUND;
END LOOP;
-Close the cursor:
CLOSE V_emp_cursor;
END;
/
-or-
Load in an intermediate table (as a temporary table)
-
The procedure with parameter output from test object type
I have the sub object created with spec and body type.
I need to test the procedure seen ino parameter object type.
could you please help me test the procedure!
create or replace type typ_obj_test as object ( a_date date, a_type varchar2(10), a_status varchar2(2), descr varchar2(10), a_id number(10), constructor function typ_obj_test(a_date date ,a_type varchar2 default null ,a_status varchar2 default null ,descr varchar2 default null ,a_id number default null) return self as result ); / create or replace type body typ_obj_test is constructor function typ_obj_test(a_date date ,a_type varchar2 default null ,a_status varchar2 default null ,descr varchar2 default null ,a_id number default null) return self as result is v_test varchar2(1); v_id number(10); begin self.a_date := a_date; self.a_type := a_type; self.a_status := a_status; self.descr := descr; self.a_id := a_id; return; end; end; / create or replace procedure p_obj_test(p_obj_param in out typ_obj_test) is begin dbms_output.put_line('Checking the object type' || p_obj_param.a_date || '@' || p_obj_param.a_type || '@' || p_obj_param.a_status || '@' || p_obj_param.descr || '@' || p_obj_param.a_id); end; /
You seem to be missing a table that could hold the object. See the next topic, especially the line # 43:
Connected to: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production SQL> create or replace type typ_obj_test as object 2 ( 3 a_date date, 4 a_type varchar2(10), 5 a_status varchar2(2), 6 descr varchar2(10), 7 a_id number(10), 8 constructor function typ_obj_test(a_date date 9 ,a_type varchar2 default null 10 ,a_status varchar2 default null 11 ,descr varchar2 default null 12 ,a_id number default null) return self as result 13 ); 14 / Type created. SQL> create or replace type body typ_obj_test is 2 constructor function typ_obj_test(a_date date 3 ,a_type varchar2 default null 4 ,a_status varchar2 default null 5 ,descr varchar2 default null 6 ,a_id number default null) return self as result is 7 v_test varchar2(1); 8 v_id number(10); 9 begin 10 self.a_date := a_date; 11 self.a_type := a_type; 12 self.a_status := a_status; 13 self.descr := descr; 14 self.a_id := a_id; 15 return; 16 end; 17 end; 18 / Type body created. -- Create a Nested table type array of above object type SQL> create or replace type nt_typ_obj_test as table of typ_obj_test; 2 / Type created. -- Keep in out parameter's type as the nested table type -- modified the proc to do loop so that multiple records can be passed via object type SQL> create or replace procedure p_obj_test(p_obj_param in out nt_typ_obj_test) is 2 begin 3 for i in p_obj_param.first..p_obj_param.last 4 loop 5 dbms_output.put_line('Checking the object type' || p_obj_param(i).a_date || '@' || p_obj_param(i).a_type || '@' || p_obj_param(i).a_status || '@' || 6 p_obj_param(i).descr || '@' || p_obj_param(i).a_id); 7 end loop; 8 end; 9 / Procedure created. --Call the procedure SQL> set serveroutput on SQL> declare 2 i_nt_typ nt_typ_obj_test ; 3 begin 4 i_nt_typ:=nt_typ_obj_test(typ_obj_test(sysdate,'A','Y','Descr',23),typ_obj_test(sysdate,'X','Z','ewe',55)); 5 p_obj_test(i_nt_typ); 6 end; 7 / Checking the object type26-MAR-15@A@Y@Descr@23 Checking the object type26-MAR-15@X@Z@ewe@55 PL/SQL procedure successfully completed. SQL>
-
use of collection (object type)
Hi, I need the logic to insert records in the collection variable
Could you please give me the tip to complete the section comments
After performing the procedure how can I call the procedure with grouping variableCREATE OR REPLACE TYPE Type_Rt IS OBJECT (Rt_Type VARCHAR2(2000), cdtRt VARCHAR2(2000), lqdtRt VARCHAR2(2000), Olk VARCHAR2(2000), cdtwh VARCHAR2(2000) ) CREATE OR REPLACE TYPE Rt_Type_Var IS TABLE OF Type_Rt; CREATE OR REPLACE PROCEDURE PROC_Rt (Cp_Id VARCHAR2, St_Id VARCHAR2, cdt_Rt VARCHAR2, liq_Rt VARCHAR2, Olk VARCHAR2, cdt_Wh VARCHAR2 , O_rat_arry OUT Rt_Type_Var -- is this the correct approach ) IS DECLARE v_typ_rt_List Rt_Type_Var; -- is this correct declaration BEGIN IF (Cp_Id ='N/A' AND St_Id ='N' AND cdt_Rt ='AA' AND liq_Rt ='A' AND Olk ='Sle' ) THEN /*insert into the object type with Rt_Type = STSRT cdtRt = AI lqdtRt =BB Olk = BLE cdtwh = DV */ END IF; IF (Cp_Id ='A' AND St_Id ='Y' AND cdt_Rt ='AB' AND liq_Rt ='B' AND Olk ='Sle' ) THEN /* insert into the object type Rt_Type = STLG cdtRt = BR lqdtRt =CR Olk = WE cdtwh = PD*/ END IF; IF (Cp_Id ='B' AND St_Id ='Y' AND cdt_Rt ='BB' AND liq_Rt ='B' AND Olk ='Sle' ) THEN /* insert into the object type Rt_Type = STSRT cdtRt = CR lqdtRt =LF Olk = ER cdtwh = QA */ END IF; END;
Thank you
Published by: Smile on 13 April 2012 16:22There are more mistakes than letters in your code. In any case, here's example how to add the element to the collection:
SQL> DECLARE 2 v_typ_rt_List Rt_Type_Var := Rt_Type_Var(); 3 BEGIN 4 v_typ_rt_List.extend; 5 v_typ_rt_List(1) := Type_Rt('N/A','N' ,'AA','A','Sle'); 6 END; 7 / PL/SQL procedure successfully completed. SQL>
SY.
-
access to the external table of object type
It is a continuation of ORA-06564: XXX_DAT_DIR object does not exist I'm hoping a different subject line will attract different people who may be able to help me solve the situation
The bottom line is that I can't access my external table of in my object.
Assume that the user is XYZZY. We run a simple nice don't shop here - no roles, just different schemas.
When I connect to sqlplus to run Access simple external table that works, I connect as XYZZY. ( it works )
When I connect my type code compile, I connect as XYZZY. ( so far, so good )
When I connect to run the stored procedure that uses the object type, I connect as XYZZY. ( does not work. get ORA-06564: there is no error object XXX_DAT_DIR )
As mentioned above, I've recently logged and re-run all grants to the user XYZZY.
When I ran the small test which included the role set to none (after replaying all grants), I logged as user XYZZY, and even though this user has grants, the test has failed. ( , it was a test based on an idea that the problem was that the subsidies have been an role, not the user. Apparently not the problem ).
Moira
Published by: user7532421 on July 20, 2010 13:25Hello
I tried the same scenario and it works fine for me (not at all an exception and the data is loaded into the target at the end table).
I created all the objects (directory, types of objects, outdoor table heaps under the same user):Here's what I did:
-- Under system GRANT CREATE ANY DIRECTORY TO hr / --under HR: CREATE OR REPLACE DIRECTORY XXX_DAT_DIR AS 'H:\Temp'; / CREATE TABLE X_TABLE_XO ( L1 VARCHAR2(3 BYTE), C1 VARCHAR2(3 BYTE), C2 VARCHAR2(3 BYTE) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY XXX_DAT_DIR ACCESS PARAMETERS ( RECORDS DELIMITED BY NEWLINE NOBADFILE NODISCARDFILE NOLOGFILE SKIP 0 FIELDS TERMINATED BY ';' MISSING FIELD VALUES ARE NULL REJECT ROWS WITH ALL NULL FIELDS ( L1 Char, C1 Char, C2 Char ) ) LOCATION (XXX_DAT_DIR:'test_ext_Table.txt') ) REJECT LIMIT UNLIMITED NOPARALLEL NOMONITORING; /
Here is an excerpt of my file:
L1;v1;v2 L2;v3;v4 L3;v5;v5 L4;v6;v6
then:
CREATE TABLE my_table AS SELECT * FROM x_table_xo WHERE ROWNUM<=0 / select column_name,data_type,data_length from user_tab_columns where table_name='MY_TABLE' COLUMN_NAME,DATA_TYPE,DATA_LENGTH L1,VARCHAR2,3 C1,VARCHAR2,3 C2,VARCHAR2,3
then (still in HR)
CREATE OR REPLACE TYPE subloader UNDER dataloader ( CONSTRUCTOR FUNCTION subloader ( SELF IN OUT NOCOPY subloader, record_date DATE ) RETURN SELF AS RESULT, OVERRIDING MEMBER FUNCTION load_data RETURN NUMBER ) ; / CREATE OR REPLACE TYPE BODY subloader AS CONSTRUCTOR FUNCTION subloader ( SELF IN OUT NOCOPY subloader, record_date DATE ) RETURN SELF AS RESULT IS BEGIN -- SELF.name := name; -- SELF.area := 0; RETURN; END; OVERRIDING MEMBER FUNCTION load_data RETURN NUMBER IS n NUMBER; BEGIN INSERT INTO my_table (SELECT * FROM x_table_xo); n := SQL%ROWCOUNT; COMMIT; RETURN n; END; END; /
(no error). then
set serveroutput on size 5000; DECLARE sl subloader; n number; BEGIN sl:= subloader(sysdate); n:=sl.load_data; dbms_output.put_line('n:'||n); END; /
-It works...
select * from my_table / L1,C1,C2 L1,v1,v2 L2,v3,v4 L3,v5,v5 L4,v6,v6
What is curious, it's that all directories are owned by SYS, even if you create with HR! (select * from all_directories)->, I tried both (System and HR, but the table is owned by HR) not-> no problem. in both situations.
-
is this type of record legal or wise?
I'm trying to make more dynamic registration. Will this work? It compiles in the package specification.
Database is 10g.
TYPE disputes_rec IS RECORD ( parent_num customer.parent_num%TYPE, cust_num customer.cust_num%TYPE, dis disputes%ROWTYPE );
One way to know whether or not it works is to try it in a simple test case.
Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production set serveroutput on set tab off declare TYPE dept_emp_type IS RECORD ( deptno dept.deptno%type , dname dept.dname%type , emp_rec emp%rowtype ); v dept_emp_type ; begin v.deptno := 10 ; v.dname := 'ACCOUNTING' ; v.emp_rec.empno := 7369 ; v.emp_rec.ename := 'SMITH' ; dbms_output.put_line( v.deptno ); dbms_output.put_line( v.dname ); dbms_output.put_line( v.emp_rec.empno ); dbms_output.put_line( v.emp_rec.ename ); end; / 10 ACCOUNTING 7369 SMITH PL/SQL procedure successfully completed.
The manual also confirms that it is indeed legal.
"PL/SQL allows you to set records that contain objects, collections and other documents (called nested records)."
PL/SQL 10g Release 2 reference manual
http://download-East.Oracle.com/docs/CD/B19306_01/AppDev.102/b14261/Collections.htm#sthref1174.--
Joe Fox
SQL snippets -
Casting of object type to aid to more specific
Hello
I'm bit stuck in the legacies of the class in my current project. I implement a zero-coupling messaging architecture that uses variant tables to store objects to be cast to sample.
The good news: it works in general, little we take a peek at some photos
I tried the script of coulee before using an example that works as expected.
Shows probe resulting:
The Message of abstract [14] is cast to the more specific Message for the controller test [15], [9]
Now, this implementation with the variants table, change things unfrotunately:
The only thing that apparently changes is, as the class to be cast to a return value of a Subvi (actually reading the table variant) [12].
As shown in the probe that the casting does not work this time... There is also no error on the terminal error.
I have to admit, I'm quite confused... especially because in another class this exact methodiolgy works...
Any thoughts?
See you soon
Oli
Cast throws more specific to the type of object shown on the thread in the IDE, regardless of the type of the actual object passing along this thread (i.e. type of YARN and not DATA type).
I bet that your wire to the Center terminal of the 'to more specific' is a son of the same type as the object you are trying to change but actually a more specific object. The 'Cast to more specific"is a compiling decision, not a decision of execution. As such it takes the type of thread, not the object type for the casting.
Look at the names on the left of your probes, they are all the same in the example below (all wires are nominally of the same type). It's the onfo LV casting (assuming the names corresponding to the nominal type of the thread) not use content REAL of the wire.
Shane.
PS to make things clearer, give each hierarchy in your legacy a different aspect of wire.
-
How to pass the number object type to bind the variable in a select statement
Hello
I have a scenario like,
UI, we store the values in the type of object, and this object type must be spent in a select query to retrieve the data accordingly.
Is it possible to do so.
If this isn't the case, please let me know how to take the values of object type and pass to the select query.
Kind regards
I found it,
Object_name ('parameters1', 'parameter2');
-
Define a map or ORDER method for the object type
Hi gurus
I created an object and then its type and then I use this object and type based on line, see below:
Create the object
CREATE OR REPLACE
TYPE test_object
IS
OBJECT
(
next_appearance_dt DATE, - next_appearance_dt
youth_adult VARCHAR2 (5) - youth_adult
) ;
/Create the object Type
CREATE or REPLACE TYPE t_docket_object IS TABLE OF THE test_object;
/
Create function Pipeline
FUNCTION to CREATE or REPLACE f_report (p_dt date, p_c_cd VARCHAR2)
return t_test_object pipeline
IS
BEGIN
FOR J IN)
Select distinct test_object)
next_appearance_dt,--862,
'YOUTH '.
) AS test_object
Jen.next_appearance base
WHERE 1 = 1
AND (base.next_appearance_dt = p_dt)
AND (base.circuit_point_cd = p_c_cd)
- and cse.information_id = 322
-ORDER 15 - alias_name
)loop
PIPE ROW (J.test_object);
END loop;
END;/
Run function
SELECT * FROM TABLE (F_REPORT (TO_DATE('25-sep-2015','dd-mon-yyyy'),'1 '))
Error
ORA-22950: cannot ORDER objects without map or ORDER method
ORA-06512: at "F_REPORT", line 5
22950 00000 - "cannot ORDER objects without map or ORDER method.
* Cause: an object type must have a defined for map or ORDER method
all comparisons other than equality and inequality comparisons.
* Action: Define a map or ORDER method for the object type
I know the reason of this error and the reason is that I use the clause separate in my pipeline service, but do not know how to get rid of this error...
Confuse you the type of table with the object type. He forge
Select test_object (next_appearance_dt) test_object
Not:
Select t_test_object (next_appearance_dt) test_object
Then:
SQL > CREATE OR REPLACE
FUNCTION f_report (DATE p_dt 2,
3 P_C_CD VARCHAR2
4 )
5 t_test_object of RETURN
6 IN PIPELINE
7 EAST
BEGIN 8
9 FOR (IN) v_rec
10 WITH () DID
11. SELECT TO_DATE('01-jan-2015','dd-mon-yyyy') NEXT_APPEARANCE_DT
the double 12
13 )
14 select test_object (next_appearance_dt) test_object
15 from t
16 ) LOOP
PIPE 17 ROW (v_rec.test_object);
18 END OF LOOP;
END 19;
20.The function is created.
SY.
-
How to fill the value in the nested table by using the object type
Hi gurusI created an object type and able to fill the values in it, now I want to create a nested table type of this object and fill it but looks like I'm doing something wrong, see my code below.
Code example
CREATE or REPLACE TYPE countries_o
AS
OBJECT
(
COUNTRY_ID TANK (2 BYTES),
COUNTRY_NAME VARCHAR2 (40 BYTE),
REGION_ID NUMBER);
/create or replace type countries_t is table of the countries_o;
/CREATE OR REPLACE
ABC of the PROCEDURE
IS
v_print countries_t; -: = arr_countries_t('01','Aus',1);
BEGIN
v_print: = countries_t('01','A',11);
DBMS_OUTPUT. Put_line (v_print. COUNTRY_ID | v_print. COUNTRY_NAME | v_print. REGION_ID);
END;
/
Error
- Error (6.3): PL/SQL: statement ignored
- Error (6,12): PLS-00306: wrong number or types of arguments in the call to 'COUNTRIES_T '.
- Error (7.3): PL/SQL: statement ignored
- Error (7.32): PLS-00302: component 'COUNTRY_ID' must be declared
Thanks in advance
Concerning
Muzz
Hi user,
Here is another method that you can try-
CREATE OR REPLACE
ABC of the PROCEDURE
IS
v_print countries_t: = countries_t (countries_o('01','A',11));
BEGIN
DBMS_OUTPUT. Put_line (v_print (1).) COUNTRY_ID | v_print (1). COUNTRY_NAME | v_print (1). REGION_ID); -you're accessinf the first element of the nested table, which in turn points to the object.
END;
In the sections of the declaration you have assigned values to the nested table.
Kind regards
Maxou - Error (6.3): PL/SQL: statement ignored
-
How to return data using the object type?
Hello all - I have an obligation to return the values object type.
In the same way as
list - Plan1, Subplan1, Fund1, 2 Fund Fund 3
list - Plan2, Subplan2, Fund2
list - plane3, Subplan3, not funds
To achieve this I wrote below proc but its giving as response below which is does not correspond with my requirement. Someone has an idea how to write code to get the list of funds against each plan in each line?
Output:
PDB01. () T_T_CONTRACT
PDB01. T_O_CONTRACT ('p1', 's1', PDB01. T_O_FUND ('p1', 's1', 'f1')),
PDB01. T_O_CONTRACT ('p1', 's1', PDB01. T_O_FUND ('p1', 's1', 'f2')),
PDB01. T_O_CONTRACT ('p1', 's1', PDB01. T_O_FUND ('p1', 's1', 'f3')),
PDB01. T_O_CONTRACT ('p2', 's2', PDB01. T_O_FUND ('p2', 's2', 'f2')),
PDB01. T_O_CONTRACT ('p3', 's3', PDB01. T_O_FUND (NULL, NULL, NULL))
)
DROP TYPE T_T_fund;
create or replace
TYPE T_O_fund
AS OBJECT)
argument plan_id Varchar2 (128).
subplan_id Varchar2 (128).
fund_id Varchar2 (128)
)
No final;
/
create or replace
type T_T_FUND
as the table of T_O_FUND;
/
type of projection T_T_CONTRACT;
create or replace
TYPE T_O_contract
AS OBJECT)
argument plan_id Varchar2 (128).
SUBPLAN_ID varchar2 (128).
ov_fund T_o_fund
)
no final;
/
create or replace
type T_t_contract as the T_O_contract table;
/
-------------------------
/ * Remove T_T_FUND;
DROP TYPE T_O_fund;
type of projection T_T_CONTRACT;
DROP TYPE T_O_contract; * /
----------------
create or replace
procedure test_cursor (o_c1 OUT sys_refcursor) is
V_T_T_FUND T_T_FUND;
v_T_t_contract T_t_contract;
Start
WITH (CONTRACTS AS
SELECT "p1" PLAN_ID, "s1" SUBPLAN_ID FROM DUAL UNION ALL
SELECT "p2" PLAN_ID, 's2' SUBPLAN_ID FROM DUAL UNION ALL
SELECT "p3" PLAN_ID, 's3' SUBPLAN_ID FROM DUAL
),
Fund)
Select "p1" PLAN_ID, SUBPLAN_ID 's1', 'f1' FUND_ID of all the DOUBLE union
Select "p1" PLAN_ID, SUBPLAN_ID 's1', 'f2' FUND_ID of all the DOUBLE union
Select plan_id "p1", "s1" subplan_id argument, "f3" fund_id Union double all the
Select the argument plan_id 'p2', 's2' subplan_id, 'f2' double fund_id
)
Select T_O_contract (c.PLAN_ID, c.SUBPLAN_ID, T_o_FUND (f.PLAN_ID, f.SUBPLAN_ID, f.FUND_ID))
TO COLLECT FEES IN BULK
in v_T_t_contract
c CONTRACTS, FUND F
where C.PLAN_ID = F.PLAN_ID
and c.SUBPLAN_ID = f.SUBPLAN_ID (+);
Open the O_C1 for
SELECT 't' TYP, v_T_t_contract contract_LST
FROM DUAL;
end;
/
impression o_test
You can declare the attribute OV_FUND as T_T_FUND data type:
create or replace type t_o_contract as object ( plan_id varchar2(128) , subplan_id varchar2(128) , ov_fund t_t_fund ); /
You will be able to do this:
with contracts as ( select 'p1' plan_id, 's1' subplan_id from dual union all select 'p2' plan_id, 's2' subplan_id from dual union all select 'p3' plan_id, 's3' subplan_id from dual ), funds as ( select 'p1' plan_id , 's1' subplan_id, 'f1' fund_id from dual union all select 'p1' plan_id , 's1' subplan_id, 'f2' fund_id from dual union all select 'p1' plan_id , 's1' subplan_id, 'f3' fund_id from dual union all select 'p2' plan_id , 's2' subplan_id, 'f2' fund_id from dual ) select t_o_contract( c.plan_id , c.subplan_id , cast( multiset( select t_o_fund(f.plan_id, f.subplan_id, f.fund_id) from funds f where f.plan_id = c.plan_id and f.subplan_id = c.subplan_id ) as t_t_fund ) ) from contracts c ;
-
Impdp ORA-39083 error: INDEX could not create with object type error:
Hi Experts,
I get the following error when importing schema HR after a fall it. The DB is r12.1.3 11.2.0.3 & ebs
I did export with this command.
patterns of HR/hr = hr = TEST_DIR dumpfile = HR.dmp logfile directory expdp = expdpHR.log statistics = none
that the user HR with the option drop waterfall.
And try to import it HR schemas in the database by the following.
Impdp System/Manager schemas = hr = TEST_DIR dumpfile = HR.dmp logfile directory = expdpHR.log statistics = none
Here is the error
imported 'HR '. "" PQH_SS_PRINT_DATA "0 KB 0 rows
... imdoor 'HR '. "" PQH_TJR_SHADOW "0 KB 0 rows
. . imported 'HR '. "" PQH_TXN_JOB_REQUIREMENTS "0 KB 0 rows
. . imported 'HR '. "" PQH_WORKSHEET_BUDGET_SETS_EFC "0 KB 0 rows
. . imported 'HR '. "" PQH_WORKSHEET_DETAILS_EFC "0 KB 0 rows
. . imported 'HR '. "" PQH_WORKSHEET_PERIODS_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_ALIEN_TRANSACTION_DATA "0 KB 0 rows
. . imported 'HR '. "" PQP_ANALYZED_ALIEN_DATA "0 KB 0 rows
. . imported 'HR '. "" PQP_ANALYZED_ALIEN_DETAILS "0 KB 0 rows
. . imported 'HR '. "" PQP_EXCEPTION_REPORTS_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_EXT_CROSS_PERSON_RECORDS "0 KB 0 rows
. . imported 'HR '. "" PQP_FLXDU_FUNC_ATTRIBUTES "0 KB 0 rows
. . imported 'HR '. "" PQP_FLXDU_XML_TAGS "0 KB 0 rows
. . imported 'HR '. "" PQP_GAP_DURATION_SUMMARY "0 KB 0 rows
. . imported 'HR '. "" PQP_PENSION_TYPES_F_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_SERVICE_HISTORY_PERIODS "0 KB 0 rows
. . imported 'HR '. "" PQP_VEHICLE_ALLOCATIONS_F_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_VEHICLE_DETAILS_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_VEHICLE_REPOSITORY_F_EFC "0 KB 0 rows
. . imported 'HR '. "" PQP_VEH_ALLOC_EXTRA_INFO "0 KB 0 rows
. . imported 'HR '. "" PQP_VEH_REPOS_EXTRA_INFO "0 KB 0 rows
Processing object type SCHEMA_EXPORT/TABLE/SCHOLARSHIP/OWNER_GRANT/OBJECT_GRANT
Processing object type SCHEMA_EXPORT/TABLE/SCHOLARSHIP/CROSS_SCHEMA/OBJECT_GRANT
Object type SCHEMA_EXPORT/TABLE/COMMENT of treatment
Object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC of treatment
Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/INDEX/FUNCTIONAL_INDEX/INDEX
Object type SCHEMA_EXPORT/TABLE/CONSTRAINT/treatment
Object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS of treatment
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/FUNCTIONAL_INDEX/INDEX_STATISTICS
Object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY of treatment
Object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT of treatment
Object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS treatment
Processing object type SCHEMA_EXPORT/TABLE/INDEX/DOMAIN_INDEX/INDEX
ORA-39083: Type what INDEX failed to create object error:
ORA-29855: an error has occurred in the execution of routine ODCIINDEXCREATE
ORA-20000: Oracle text error:
DRG-50857: error oracle in drvxtab.create_index_tables
ORA-00959: tablespace "APPS_TS_TX_IDX_NEW" does not exist
Because sql is:
CREATE INDEXES ' HR'.»» IRC_POSTING_CON_TL_CTX' ON 'HR '. "" INDEXTYPE IRC_POSTING_CONTENTS_TL "("NAME") IS"CTXSYS. "' CONTEXT ' PARALLEL 1
Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
Work 'SYSTEM '. "" SYS_IMPORT_SCHEMA_01 "completed with error (s 1) at 11:16:07
SQL > select count (parameter), object_type from dba_objects where owner = 'HR' group by object_type.
OBJECT_TYPE COUNT (OBJECT_NAME)
------------------ -------------------
INDEX 37 PARTITION
SEQUENCE OF 799
TABLE 12 PARTITION
LOB 70
4 BODY PACKAGE
PACKAGE OF 4
3 RELAXATION
2936 INDEX
TABLE OF 1306
Could you please suggest.
Thank you
MZ
MZ,
I get the following error when importing schema HR after a fall it. The DB is r12.1.3 11.2.0.3 & ebs
Export and import of individual patterns of Oracle E-Business Suite stocked are not supported as this will violate referential integrity (except for custom schemas provided, you have no dependencies).
Thank you
Hussein
Maybe you are looking for
-
I can't sync my IPod from windows downloaded itself 10
Hi, I got this IPod for many years and I can't think of another name for it that IPod! Not a key, not a nano, etc. Making an IPod classic? Because windows 10 raided in my computer, the only thing that appears when I Plug and open ITunes are the album
-
Can't use on my Satellite A100 Toshiba controls
Hello! I have a Satellite A100 with Windows XP.The internet and CD/DVD buttons worked perfectly until a few days ago, nothing happens when I use them. I check their configuration, and it's ok.Can someone help me, please?Thank you!
-
Satellite L850/0C9 and resolutions HDMI
Hi all. Ive recently bought a 9 L850/0c and I can not get the HDMI output to 1360 x 768, which is the native resolution of my panels. Using a vga cable that I can output to 1360 x 768, but not with HDMIAny ideas? Windows 7 Home Premium 64-bit
-
execution engine error fatal 0x7925e104
NET FRAMEWORK causes a pop-up message "execution engine error fatal 0x7925e104"... windows do not al. bottom remove me programs (framework}, I can't find which frame is active in my system XP
-
How to add data to a write-protected micro SD memory card
original title: write protected disk my removable disk (f :)) is write-protected, so I can't put music on my micro SD memory card, how do I remove this then I'll be able to transfer my music from my android phone?)