Element in the pl/sql table
Hi all
I have an array of integers that contains thousands of values such as 100,200,300,400,5000.
Now, I want to know whether the table contains the value of 377. What should be my corner.
There is doesn't work here because it only works with the item number. Here, I have only the content.
Concerning
Rajat
Types can be defined in SQL and PL/SQL. The collections based on the SQL types can be used in SQL statements.
set serveroutput on declare lt_nums sys.odcinumberlist := sys.odcinumberlist(1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77,88,99); l_result number; begin select count(*) into l_result from table(lt_nums) where column_value = 55; dbms_output.put_line('Number of found occurences = ' || l_result); end; /
anonymous block filled
Number of found rows = 1
Post edited by: Ashton stew - I see RP says the same thing (and more) while I was typing my response. Well...
Tags: Database
Similar Questions
-
Insert rows in the PL/SQl table
Hello
I have a PL/SQl table that I filled through bulk collect and now I'm trying to loop through the table (actually quite a few nested loops)... Now in one of my curls, I might need to insert a new row by splitting the field in the existing row in the table. Can I insert the line in the pl/sql table in the loop without affecting the "FOR i IN tab.first... Tab.Last' loop?
Also, what would be the index of such a line inserted into the table. Can I access it with tab.last + 1 (doesn't look like it can be done if I insert into various levels of loops).
OR
If I insert the lines insde loops nested, then I can access the new lines as soon as I close all the loops and open a new loop? The new lines will be at the last table.
Any help will be appreciated...The expression v_arr. LAST gives the index of the last entry, so you can refer to this element as
v_arr(v_arr.LAST)
Then the attributes of this element will be
v_arr(v_arr.LAST).attr
for example
DECLARE TYPE table_defs_tt IS TABLE OF user_tables%ROWTYPE INDEX BY PLS_INTEGER; v_mytables table_defs_tt; BEGIN SELECT * BULK COLLECT INTO v_mytables FROM user_tables WHERE ROWNUM <= 100; DBMS_OUTPUT.PUT_LINE(v_mytables(v_mytables.LAST).table_name); END;
-
How to remove duplicates from the PL - SQL table?
Hi gurus,
I have a PL - SQL table with the following structure
Authors (SR_NO, Auth_Code, Change_Date, cost)
This table is filled using a slider. However, this table can have a few lines in double (for column (Auth_Code)
for example
I need to get the above result set select the separate lines of Auth_Code including the Change_Date is maximum (and store in another PL - SQL table for treatment later or even the removal of this table will be also!)SR_NO Auth_Code Change_Date Cost 1 A1 14-FEB-09 08.18.47 AM 11.00 2 A2 14-FEB-09 08.18.56 AM 2839.00 3 A1 15-FEB-09 08.00.02 AM 1299.00 4 A1 15-FEB-09 07.00.00 AM 789.00 5 A3 14-FEB-09 08.18.56 AM 312.00 6 A4 14-FEB-09 08.19.02 AM 233.00
of the data A1 is duplicated and a maximum Change_Date above = 15 February 09 08.00.02 AM.
Where my PL - SQL Table that results must have given below
I'm not very aware of the PL - SQL tables and there is no chance to change the existing cursor that fills the data in this table PL - SQL.SR_NO Auth_Code Change_Date Cost 2 A2 14-FEB-09 08.18.56 AM 2839.00 3 A1 15-FEB-09 08.00.02 AM 1299.00 5 A3 14-FEB-09 08.18.56 AM 312.00 6 A4 14-FEB-09 08.19.02 AM 233.00
I guess that I need to compare each record of PL - SQL table with others, but do not know how to do this.
Could you please help?Hello
Like this?:
Connected to Oracle Database 10g Express Edition Release 10.2.0.1.0 Connected as hr SQL> SQL> with data as( 2 select 1 as SR_NO, 'A1' as Auth_Code, to_date('14-FEB-09 08.18.47', 'dd-mon-yy hh24:mi:ss') as change_date, 11.00 as cost from dual union all 3 select 2 as SR_NO, 'A2' as Auth_Code, to_date('14-FEB-09 08.18.56', 'dd-mon-yy hh24:mi:ss') as change_date, 2839.00 as cost from dual union all 4 select 3 as SR_NO, 'A1' as Auth_Code, to_date('15-FEB-09 08.00.02', 'dd-mon-yy hh24:mi:ss') as change_date, 1299.00 as cost from dual union all 5 select 4 as SR_NO, 'A1' as Auth_Code, to_date('15-FEB-09 07.00.00', 'dd-mon-yy hh24:mi:ss') as change_date, 789.00 as cost from dual union all 6 select 5 as SR_NO, 'A3' as Auth_Code, to_date('14-FEB-09 08.18.56', 'dd-mon-yy hh24:mi:ss') as change_date, 312.00 as cost from dual union all 7 select 6 as SR_NO, 'A4' as Auth_Code, to_date('14-FEB-09 08.19.02', 'dd-mon-yy hh24:mi:ss') as change_date, 233.00 as cost from dual) 8 select * from data d where change_date = (select max(change_date) from data d2 where d.auth_code = d2.auth_code); SR_NO AUTH_CODE CHANGE_DATE COST ---------- --------- ----------- ---------- 2 A2 14/02/2009 2839 3 A1 15/02/2009 1299 5 A3 14/02/2009 312 6 A4 14/02/2009 233 SQL>
Kind regards
-
Select DataSet from the pl/sql table
Hi Experts,
I need to create a metric of OEM 12 c extensions. I must create a pl/sql code that can return results to OEM.
The following code works in OEM. But the problem is that I need to create a permanent table for this case.
Could you please tell any other option available to do this without creating additional objects at the database level?
Based on the requirement of the OEM, the end of the script, I have to do something like ' open: 1 to select in the <>' to return the results in a table.
Thank you.
###########################################################################################
DECLARE
TYPE cur_type IS REF CURSOR;
CURSOR c1 IS
SELECT distinct (owner: '.) ' || queue_table) as queue_table FROM dba_queues;
l_cur_string VARCHAR2 (200);
C2 cur_type;
v_queue VARCHAR2 (128);
number of v_ready;
BEGIN
run immediately "remove sys.testing";
FOR v_queue_table IN c1 LOOP
l_cur_string: ='select q_name, count (*) from ' | v_queue_table.queue_table | ' where State = 0 or (State = 1 and sysdate > nvl (delay, enq_time)) q_name group ';
OPEN c2 FOR l_cur_string;
LOOP
C2-FETCH INTO v_queue, v_ready;
OUTPUT WHEN c2% NOTFOUND;
run immediately ' insert into sys.testing values (: v_queue,: v_ready) "using v_queue, v_ready;"
OPEN: 1 for select * from sys.testing;
commit;
END LOOP;
CLOSE C2;
END LOOP;
END;
###################################################################################
In addition, committing inside of cursor loops are false. You should never engage at the end of a business logic operation, NEVER in cursor loops.
Something along these lines (untested) is probably what you want:
var refcursor rc;
declare
SQL varchar2 (32767).
Start
SQL: = q'[select
table_name,
TO_NUMBER)
ExtractValue)
XmlType)
dbms_xmlgen. GetXml ("select count (*) c to ' |") table_name | ((' where State = 0 or (State = 1 and sysdate > nvl (delay, enq_time)) q_name group '))
(("/ LINES/LINES/C ')) County
from (select distinct owner |'.) ' || queue_table as table_name dba_queues)]';
Open: rc for sql.
end;
/
print rc;
-
Extend the pl/sql table function
declare
type aar_test is table of the varchar2 (100)
index of directory;
aar_main aar_test;
Start
aar_main.extend;
aar_main (aar_main. (Last): = 'expand the cell. "
end;
He's back a mistake... it's possible? If so how... plzzzzzzzz help me...Hello..
Please go through this...!
EXTEND ******* This procedure has three forms. EXTEND appends one null element to a collection. EXTEND(n) appends n null elements to a collection. EXTEND(n,i) appends n copies of the ith element to a collection. EXTEND operates on the internal size of a collection. If EXTEND encounters deleted elements, it includes them in its tally. You cannot use EXTEND with associative arrays.
Concerning
KPR* If this answer is correct, then mark it as correct answer.
* If this answer is useful, then mark it as a useful answer. -
assign a value to a text element using the PL/SQL function body
Hello
I want to assign a value to a text element using PL/SQL function body option in the Source elements. But the below error when I try to apply it.
Source code:
declare
name varchar2 (100);
Start
If v ("P3_CREHIDD") = 'Edit' then
Select ename in the name of cpy_emp where empno = v('P3_EMPNO2');
end if;
end;
ERR-1904 unable to calculate the default item: type = computation_type = function body declare name varchar2 (100); so start v ('P3_CREHIDD') = 'Edit' and then select ename in the name of cpy_emp where empno = v('P3_EMPNO2'); end if; end;.
Thank you
David.Hello
Your body of the function doesn't return anything.
Maybe it worksdeclare l_name varchar2(100); begin if v('P3_CREHIDD') = 'Edit' then select ename into l_name from cpy_emp where empno = v('P3_EMPNO2'); end if; RETURN l_name; end;
BR, Jari
-
Elements of the associated parent table (readonly - display only) page
Hello
is this possible in APEX 5.0?
DB Strucktur: Customer (fields: name, address, Postal Code) 1: n Contacts (Firstname, Lastname, customer_id,...)
I need a form (Contact):
First name:
Name:
Address:Articles of ReadOnly to the Customer Table (display only):
Customer name:
Articles of Cistomer address:
....
Thanks for the help!
Alex
Here's what you do:
-First create a report using the form on your Contact Table
-Then to create a new zone titled customer info
-Drag the items only display different columns in the Customer table in the new region
-Finally create a header of process before making
Select cust_name, cust_address
in: P1_CUST_NAME,: P1_CUST_ADDRESS
of customer_table
where id =: P1_CUSTOMER_ID;
-Put a condition on the process draw only when you have a: P1_CUSTOMER_ID
Note: your table, the columns may be a little different than the example above.
Hope that helps,
Dimitri
-
Is it possible to use the record type or a PL/SQL table in the Select statement
Hi all
My requirement is that.
I want to write a query and write a function, function, I want to return multiple columns at the same time in a Select statement.
I select the return values in the Select no statement in a PL/SQL block.
Is it possible to use the PL/SQL Table or Variable of Type record, or any other method in the statement Select?
Please help me understand the solution.
Kind regards830960 wrote:
do we like it?In general, Yes, if the function is a function table, you can do something like:
select t.col1, t.col2, f.col1, f.col2, f.col3 from table_name t, table(some_table_function(param1,...paramN)) f /
SY.
-
How to find the second largest in a pl/sql table
Hello friends,
I want to find the first and second maximum items in a pl/sql table.
Here's the code...
DECLARE
Max_earnings_type TYPE TABLE IS NUMBER;
max_earnings_tab max_earnings_type: = max_earnings_type();
number of v_count: = 0;
number of v_max_earnings;
Can someone give me how to find the maximum first max and second in the type of the given table.
appreciate your help.
Thank you/kumar
Published by: kumar73 on October 21, 2010 09:42kumar73 wrote:
When I tried to implement your logic in my application, I get the following error...
PL/SQL: digital or value error: NULL index key value table
What happens if the PL/SQL table has NULL values. Question is how you want to handle NULL values. You want to ignore nulls as GROUP BY do? If you want to consider NULL values, you can say if you want to order the NULLS FIRST or NULLS LAST. I guess that logical GROUP BY:
DECLARE TYPE max_earnings_type IS TABLE OF NUMBER; TYPE max_earnings_sorted_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER; max_earnings_tab max_earnings_type; max_earnings_tab_sorted max_earnings_sorted_type; BEGIN SELECT sal + comm BULK COLLECT INTO max_earnings_tab FROM emp; FOR v_i in 1..max_earnings_tab.count LOOP IF max_earnings_tab(v_i) IS NOT NULL THEN max_earnings_tab_sorted(max_earnings_tab(v_i)) := 1; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('MAX value in PL/SQL table is ' || nvl(to_char(max_earnings_tab_sorted.last),'NULL')); DBMS_OUTPUT.PUT_LINE('Second MAX value in PL/SQL table is ' || nvl(to_char(max_earnings_tab_sorted.prior(max_earnings_tab_sorted.last)),'NULL')); END; / MAX value in PL/SQL table is 2650 Second MAX value in PL/SQL table is 1900 PL/SQL procedure successfully completed. SQL> SELECT sal + comm 2 FROM emp; SAL+COMM ---------- 1900 1750 2650 1500 SAL+COMM ---------- 14 rows selected. SQL>
SY.
-
Pass Pl/sql table in the USING clause in the EXECUTE IMMEDIATE statement
Getting error when I try to pass the PL/SQL table in the USING clause in the EXECUTE IMMEDIATE statement:
Declare
result NUMBER;
TYPE values_tab IS TABLE OF NUMBER INDEX OF directory;
lv_tab values_tab;
lv_exp varchar2 (300);
lv_exec varchar2 (300);
BEGIN
lv_tab (1): = 5;
lv_tab (2): = 48;
lv_tab (3): = 7;
lv_tab (4): = 6;
lv_exp: = ': + b1: b2 + (: b3 *: b4)';
lv_exec: = 'SELECT'. lv_exp | ' THE DOUBLE '.
IMMEDIATE EXECUTION
lv_exec
IN
result
USING
lv_tab;
DBMS_OUTPUT. Put_line (result);
END;
/
Error on line 1
ORA-06550: line 20, column 12:
PLS-00457: expressions must be SQL types
ORA-06550: line 15, column 8:
PL/SQL: Statement ignored
I am trying to evaluate the expression ': + b1: b2 + (: b3 *: b4) "which is stored in the table. This table has different expressions (expressions about 300). I want to use the bind variable in the expression because each expression evaluated thousands of time may be more in some cases. If I use bind variable can he fill pool.
Is there a way I can pass parameters with the HELP of (IN) dynamically instead of write "help lv_tab (1), lv_tab (2), lv_tab (3), lv_tab (4)? As number of change of the input parameters depend on the expression in the table.
If it is possible please suggest any other ideas/approaches
Help, please...
Published by: satnam on June 11, 2009 11:50Well, you keep changing faster reqs that I can follow. In any case, assuming that N-th variable bind (left to right) corresponds to n-th collection item:
Declare result NUMBER; lv_tab values_tab := values_tab(); lv_exp varchar2(300); lv_exec varchar2(300); lv_i number := 0; BEGIN lv_tab.extend(4); lv_tab(1) := 5; lv_tab(2) := 48; lv_tab(3) := 7; lv_tab(4) := 6; lv_exp := ':5000135+:5403456+(:5900111*:5200456)'; lv_exec := lv_exp; While regexp_like(lv_exec,':\d+') loop lv_i := lv_i + 1; lv_exec := REGEXP_REPLACE(lv_exec,':\d+',':b(' || lv_i || ')',1,1); end loop; lv_exec := 'BEGIN :a := ' || lv_exec || '; END;'; DBMS_OUTPUT.PUT_LINE(lv_exec); EXECUTE IMMEDIATE lv_exec USING OUT result,IN lv_tab; DBMS_OUTPUT.PUT_LINE(result); END; / BEGIN :a := :b(1)+:b(2)+(:b(3)*:b(4)); END; 95 PL/SQL procedure successfully completed. SQL>
SY.
-
Performance issue Bulk Insert PL/SQL table type
Hi all
I put in work of a batch to fill a table with a large number of data records(>3,000,000). To reduce the execution time, I used PL/SQL tables to temporarily store data that must be written to the destination table. Once all documents are piling up in the PL/SQL table I use a FORALL operator for bulk insert the records in the physical table.
Currently, I follow two approaches to implement the process described above. (Please see the code segments below). I need to choose how to best wise performance between these two approaches. I really appreciate all the comments of experts about the runtime of the two approaches.
(I don't see much difference in consumption of time in my test environment that has limited the data series. This process involves building a complex set of structures of large product once deployed in the production environment).
Approach I:_
DECLARE
TYPE of test_type IS test_tab % ROWTYPE directory INDEX TABLE;
test_type_ test_type.
ins_idx_ NUMBER;
BEGIN
ins_idx_: = 1;
NESTED LOOPS
test_type_ (ins_idx_) .column1: = value1;
test_type_ (ins_idx_) .column2: = value2;
test_type_ (ins_idx_) .column3: = value3;
ins_idx_: = ins_idx_ + 1;
END LOOP;
I_ FORALL in 1.test_type_. COUNTY
INSERT INTO test_tab VALUES (i_) test_type_;
END;
/
Approach II:_
DECLARE
Column1 IS a TABLE OF TYPE test_tab.column1%TYPE INDEX DIRECTORY.
Column2 IS a TABLE OF TYPE test_tab.column2%TYPE INDEX DIRECTORY.
Column3 IS a TABLE OF TYPE test_tab.column3%TYPE INDEX DIRECTORY.
column1 column1_;
column2_ Column2;
column3_ Column3;
ins_idx_ NUMBER;
BEGIN
ins_idx_: = 1;
NESTED LOOPS
column1_ (ins_idx_): = value1;
column2_ (ins_idx_): = value2;
column3_ (ins_idx_): = value3;
ins_idx_: = ins_idx_ + 1;
END LOOP;
FORALL idx_ in 1.column1_. COUNTY
INSERT
IN n_part_cost_bucket_tab)
Column1,
Column2,
Column3)
VALUES)
column1_ (idx_),
column2_ (idx_),
column3_ (idx_));
END;
/
Best regards
Lorenzo
Published by: nipuna86 on January 3, 2013 22:23nipuna86 wrote:
I put in work of a batch to fill a table with a large number of data records(>3,000,000). To reduce the execution time, I used PL/SQL tables to temporarily store data that must be written to the destination table. Once all documents are piling up in the PL/SQL table I use a FORALL operator for bulk insert the records in the physical table.
Performance is more than just reducing the execution time.
Just as smashing a car stops more than a car in the fastest possible time.
If it was (breaking a car stopping all simply), then a brick with reinforced concrete wall construction, would have been the perfect way to stop all types of all sorts of speed motor vehicles.
Only problem (well more than one actually) is that stop a vehicle in this way is bad for the car, the engine, the driver, passengers and any other content inside.
And pushing 3 million records in a PL/SQL 'table' (btw, that is a WRONG terminology - there no PL/SQL table structure) in order to run a SQL cursor INSERT 3 million times, to reduce the execution times, is no different than using a brick wall to stop a car.
Both approaches are pretty well imperfect. Both places an unreasonable demand on the memory of the PGA. Both are still row-by-row (aka slow-by-slow) treatment.
-
Hello guys,.
I have a few questions about the PL/SQL tables
(1) if I don't specify the 'INDEX BY' clause, they are indexed by PLS_INTEGER default, right?
(2) consider this package specification
So I created a table (I hope it's standard indexed by type of data pls_integer) and I am in him passing as parameter to a procedure. Because I want this parameter be optional I assign null inside.CREATE OR REPLACE PACKAGE Testxyz AS TYPE tab_Numbers IS TABLE OF PLS_INTEGER; PROCEDURE TestNumber(ptab_Numbers IN tab_Numbers := NULL); END Testxyz;
Now, I change the table definition for:
Try to compile it and you get:CREATE OR REPLACE PACKAGE Testxyz AS TYPE tab_Numbers IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER; PROCEDURE TestNumber(ptab_Numbers IN tab_Numbers := NULL); END Testxyz;
Error (5.53): PLS-00382: expression is of the wrong type
Why?
(3) because I need this optional parameter, I use the first statement:
Now I create an anonymous block, and you want to set something in the tableCREATE OR REPLACE PACKAGE Testxyz AS TYPE tab_Numbers IS TABLE OF PLS_INTEGER; PROCEDURE TestNumber(ptab_Numbers IN tab_Numbers := NULL); END Testxyz;
When you try to run it, I got:DECLARE vtab_Numbers TESTXYZ.tab_Numbers; BEGIN vtab_Numbers(1) := 5; END; /
06531 00000 - 'refers to an uninitialized collection.
Can someone help me understand this problem?
Is it possible to have input of type PL/SQL table setting and have a standard null, are assigned?
Thanks, Dan(1) if I don't specify the 'INDEX BY' clause, they are indexed by PLS_INTEGER default, right?
N ° or somehow.
More critical, and using official terms of [url http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites.htm#CHDBHJEI] documentation so that we don't get into unnecessary arguments about the correct terms for these features, it's the difference between types of ASSOCIATIVE TABLE and the IMBRIQUEE TABLE collection.
If you omit the "INDEX BY" clause, it is a type of TABLE IMBRIQUEE collection. A type of TABLE IMBRIQUEE is always indexed by PLS_INTEGER.
When you include the ' INDEX OF ', this is an ASSOCIATIVE ARRAY.
(2) consider this package specification
Try to compile it and you get:
Error (5.53): PLS-00382: expression is of the wrong typeWhy?
Because you cannot assign NULL to an ASSOCIATIVE ARRAY.
In the same way, you cannot do this:
SQL> DECLARE 2 TYPE tab_Numbers IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER; 3 v1 tab_Numbers; 4 BEGIN 5 v1 := NULL; 6 END; 7 / v1 := NULL; * ERROR at line 5: ORA-06550: line 5, column 8: PLS-00382: expression is of wrong type ORA-06550: line 5, column 2: PL/SQL: Statement ignored SQL>
If you want two entry points to TestNumber with an ASSOCIATIVE ARRAY or NULL then overload the procedure.
If you want to call a procedure with a TABLE IMBRIQUE collection type you can the default empty:
SQL> CREATE OR REPLACE PACKAGE Testxyz 2 AS 3 TYPE tab_Numbers IS TABLE OF PLS_INTEGER; 4 PROCEDURE TestNumber(ptab_Numbers IN tab_Numbers DEFAULT tab_Numbers()); 5 PROCEDURE TestNumber; 6 END Testxyz; 7 / Package created. SQL>
(3) because I need this optional parameter, I use the first statement
When you try to run it, I got:
06531 00000 - 'refers to an uninitialized collection.Because you have not initialized it.
Different collection types require different semantics.
SQL> DECLARE 2 TYPE tab_Numbers IS TABLE OF PLS_INTEGER; 3 v1 tab_Numbers; 4 BEGIN 5 v1(1) := 5; 6 END; 7 / DECLARE * ERROR at line 1: ORA-06531: Reference to uninitialized collection ORA-06512: at line 5 SQL> DECLARE 2 TYPE tab_Numbers IS TABLE OF PLS_INTEGER; 3 v1 tab_Numbers := tab_Numbers(); 4 BEGIN 5 v1(1) := 5; 6 END; 7 / DECLARE * ERROR at line 1: ORA-06533: Subscript beyond count ORA-06512: at line 5 SQL> DECLARE 2 TYPE tab_Numbers IS TABLE OF PLS_INTEGER; 3 v1 tab_Numbers := tab_Numbers(); 4 BEGIN 5 v1.extend(); 6 v1(1) := 5; 7 END; 8 / PL/SQL procedure successfully completed. SQL>
-
Hi all
Newbie when it comes to PL/SQL tables...
Can someone explain to me why it works and how exactly I can do the following without triggering an error?
I have a function that accepts a PL/SQL table like in parameter.
The PL/SQL table is defined as...
the xxtzg_otl_iface_stg table has many columns including error_message and error_flag. If I find an error, I want to update the error_message and error_flag function. If I can get it works I will then modify the function to return to the table of PL/SQL instead of BOOLEANType TTimeTable is table of xxtzg_otl_iface_stg%rowtype index by binary_integer;
FUNCTION validate_timecard (pTimeTable IN TTimeTable ) RETURN BOOLEAN IS lc_module CONSTANT VARCHAR2(25) := 'validate_timecard'; lEmployeeCount PLS_INTEGER; lEmployeeError VARCHAR2(1000); lErrorCount PLS_INTEGER :=0; BEGIN FOR i IN 1 .. NVL(pTimeTable.COUNT,0) LOOP xxtzg_concurrent_utils_pkg.write_log( p_package => gc_package , p_module => lc_module , p_text => 'Processing timecard for employee_number: '||pTimeTable(1).employee_number ); -- Call validations before submitting the timecard to the API --validate employee begin select count(*) into lEmployeeCount from per_all_people_f where employee_number = pTimeTable(1).employee_number; if lEmployeeCount = 0 then -- Set the errors -- This assignment below does not work, I get an error message saying... --[Error] PLS-00363 (137: 27): PLS-00363: expression 'PTIMETABLE.ERROR_MESSAGE' cannot be used as an assignment target PTimeTable(i).error_message := 'Employee Number '||pTimeTable(1).employee_number||' is not a valid employee'; PTimeTable(i).error_flag := 'Y'; end if; end; END LOOP; IF lErrorCount = 0 THEN RETURN TRUE; ELSE RETURN FALSE; END IF; END;
blue72TA wrote:
FUNCTION validate_timecard (pTimeTable IN TTimeTable ) RETURN BOOLEAN IS ... -- This assignment below does not work, I get an error message saying... --[Error] PLS-00363 (137: 27): PLS-00363: expression 'PTIMETABLE.ERROR_MESSAGE' cannot be used as an assignment target PTimeTable(i).error_message := 'Employee Number '||pTimeTable(1).employee_number||' is not a valid employee'; PTimeTable(i).error_flag := 'Y';
Your table is declared as IN only (the default if you do not explicitly set it), so you are not allowed to change its attributes in all respects, IN = read-only.
If you want to be able to modify the values of a parameter, it must be declared as OUT parameters.
-
the collection of table support
Hi, I'm trying to create a slideshow with the RSS feeds from flickr. I use a component datagrid to store the images (because of the effects of transition when I add or remove an item from the dataProvider.) I can go through the images very efficiently by simply removing the first element in the collection of table, but then I get to the end and of course the slideshow is none because I deleted everything. is there an easy way for me to just take the first object in the collection of table and move it to the end? I tried photoFeed.setItemAt (object, int); but I don't know how to call on the first object in the collection of table. also, for the int variable I try to use photoFeed.length because I want it move to the end of the array whose length should be the correct number from the beginning of indexation of array to 0.Although I can't understand the requirement of moving an item at the end of a slide show, you can use
var point: Object = photoFeed.removeItemAt (0);
photoFeed.addItem (item);to achieve what you want.
If you just want to browse the pictures one by one until the end, you just need to use the createCursor API and get a cursor. By calling moveNext on the slider, you move through the collection until moveNext returns false.
-
Hi all!
What is the PL/SQL table and why use us it?
Help me.Hello
A PL/SQL table is a table that exists only in PL/SQL blocks. It could be used to create one or more dimension tables in memory, but it has no direct relationship with Oracle Forms.
Try Google on it and you will find many interesting links.François
Maybe you are looking for
-
How to save an attachment to email photo
MOVE PHOTOS HOW CAN I MOVE ALL OF MY PHOTOS IN MY ALBUM? THE PHOTOS ARE IN E-MAIL ATTACHMENTS >
-
Dell I7559-5012 M.2 SSD
The reason why I am contacting you today is on the configuration of disk hard m2 on the laptop. I know that the ability of the computer to use a PCIe 3.0 m2 is there but is the Bios is configured only to recognize a SATA III m2. Do you know if it wil
-
Cursor on Windows Live Mail becomes a large black square
Original title: 'cursor '. Cursor on Windows LiveMail becomes a large black square. How can I give it to a small vertical slider?
-
Poster blackBerry Smartphones BB in which new SIM is installed
Hello My question is this: I replaced the SIM cardin my Bold 9900. After you enter the SIM pin code, I need to log in with my account ID of BB. But it tells me that the password is incorrect. Even after I have change the password in the ID of BB and
-
Routing of a VPN from Site to site to remote VPN users
Hello We have a site and remote vpn site configured in the same interface in ASA 5520 (software version 8.3). When the remote vpn users try to connect to the computers located at the far end of the site to site VPN, their request has failed. I tried