How to insert reference of object in nested table
hi , i have a problem with nested table :
CREATE OR REPLACE TYPE ITEM AS OBJECT
ITEM_ID NUMBER,
ITEM_DES VARCHAR2(4000),
PRODUCT_NO VARCHAR2(15),
PRODUCT_DES VARCHAR2(4000)
CREATE TABLE ITEMS OF ITEM
CONSTRAINT ITEM_PK PRIMARY KEY (ITEM_ID)
CREATE OR REPLACE TYPE BOM AS OBJECT
BOM_ID NUMBER,
ITEM_ID NUMBER,
BOM_PARENT_ID number
create or replace type boms as table of ref bom;
create table bom_table
bom_ids bom,bom_member boms
) nested table bom_member store as bom_childs;
insert into bom_table (bom(1,1,null),null);
insert into bom_table (bom(2,1,1),boms(select ref(t) from bom_table t where t.bom_id=1))
show error.
how i can insert in nested table reference of object
thanks
your table "bom_table" is not an object table or view, and thus you can't create object references to it's rows. you'll need to create an object table or view of "bom" objects, with a corresponding object identifier, and then reference that table/view in your subquery instead.
Gerard
Similar Messages
-
How to Export/Import Composite Objects(CLOB,Nested Table)
I am trying to export the database containing BLOB, Nested Tables etc. and wants to import the same. But i am getting an error. Pleease help as to how i will proceed with it. This is something very urgent. please reply . i will be very thankful to you
The only solution I've found so far as a workaround is rather convoluted.
1. I took an export using datapump's expdp of SCHEMA1 (in 10g it will skip the table with the xmltype).
2. I imported the data to my empty schema (SCHEMA2) using impdp. To avoid the error that the type already exists with another OID, I used the TRANSFORM=oid:n parameter e.g.
impdp user/pwd dumpfile=noxmltable.dmp logfile=importallbutxmltable.log remap_schema=SCHEMA1:SCHEMA2 TRANSFORM=oid:n directory=MYDUMPDIR
3. I then manually created my xmltype table in the SCHEMA2 and did a select into to load it (make sure you have the select privileges to do so):
INSERT INTO SCHEMA2.XMLTABLE2 SELECT * FROM SCHEMA1.XMLTABLE1;
4. I am still taking an export with exp of the xmltable as well even though I'm not sure I can do anything with it.
Thanks!
Edited by: stacyz on Jul 28, 2009 9:49 AM -
SQL Loader Constraints with Column Objects and Nested Tables
I am working on loading a Table that (god forbid) contains columns, column objects, and nested tables (which contains several depth of column objects). My question is does SQL Loader have a hidding undocumented feature where it states how the column objects must be grouped in refereneced to the nested tables within the loader file? I can load the various column objects, and nested tables fine right now, however, I am loading them all in strange and insane order. Can anyone answer this question? Thanks.
PeterI just noticed that my email is wrong. If you can help, plese send email to [email protected]
thanks. -
How to insert line or row in a table?
Hi OAF experts,
can anyone show me how to insert row or line in a table bean by setting the table.setAutoInsertion(false) ?
Thank you.
JonAs per Dev Guide:---
The other change you can make is to suppress the default Add Another Row button behavior of adding a
single row to the view instance associated with the table, so that you can handle the event with your own code.
The following code example illustrates how to accomplish this:
processRequest
// Enabled add row and turn off the default "Add Another Row" table event
// The add row event has to be auto-handled by developer in processFormRequest
tableBean.setInsertable(true);
tableBean.setAutoInsertion(false);
processFormRequest
if ((tableBean.getName()Equals(pageContext.getParameter(SOURCE_PARAM))) &&
(ADD_ROWS_EVENT.equals(pageContext.getParameter(EVENT_PARAM))))
OAApplicationModule am = pageContext.getApplicationModule(tableBean);
am.invokeMethod("handleInsertRow", null);
// The ***AMImpl.java in which method "handlInsertRow" has been defined
public void handleInsertRow()
OAViewObject vo = findViewObject("voName");
vo.invokeMethod("handleInsertRow");
// The ***VOImpl.java which is associated with the table; and in which the
// handleInsertRow is defined
public void handleInsertRow()
Row row = createRow();
// Set any default attributes
row.setAttribute(...);
// Insert the row into the VO
insertRow(row);
Thanks
--Anil -
How to insert a gif file into a table?
Hi,
I need to insert a gif file into a table. Can anyone tell me where I can find the information on how to create this kind of table, how to insert a gif file into a table and how to select?
Thanks,
HelenHi Helen,
You could read about that in the documentation which is available online.
For a starter: BLOB. And I bet there are many examples to be found on the web.
Good luck. :)
Regards,
Guido -
How to insert select columns from one internal table to another
Hi,
How to insert select columns from one internal table to another based on condition as we do from a standart table to internal table.
regards,
SriramHi,
If your question is for copying data from 1 int table to other ;
we can use
APPEND LINES OF it_1 TO it_2.
or if they have different columns then:
loop at it_1 into wa_it1.
move wa_it1-data to wa_it2-d1.
apped wa_it2 to it_2.
clear wa_it2.
endloop.
thnxz -
How to insert data from JTable to mysql Table....
hello everybody
i need help about how to insert data from JTable to mysql table... i know about how to create Table model...facing problem about how to insert data from JTable to mysql table....any helping link or code ... ill be thankfulll....for giving me solution...table1.getValueAt(table1.getSelectedRow(),0)you are getting the value of a selected row... or if you want you can just use a loop..
for(.....){
table1.getValueAt(x,y);
}I think you know INSERT STATEMENT.. here on it just string concat
sample e.g. (This not insert)
"delete from accrule " +
"where ruleid= " + tblRA.getValueAt(tblRA.getSelectedRow(),0)+
" and accountname='"+tblRA.getValueAt(tblRA.getSelectedRow(),1)+"'" -
How to insert the select query result into table?
How to insert the select query result into table?
SELECT top 20 creation_time
,last_execution_time
,total_physical_reads
,total_logical_reads
,total_logical_writes
, execution_count
, total_worker_time
, total_elapsed_time
, total_elapsed_time / execution_count avg_elapsed_time
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;
Thanks,
Tirumala1. SELECT INTO
Below method will create table when data is inserted from one table to another table. Its useful when you need exactly same datatype as source table.
Use AdventureWorks2008R2;
Go
---Insert data using SELECT INTO
SELECT AddressLine1, City
INTO BothellAddresses
FROM Person.Address
where City = 'Bothell';
GO
---VERIFY DATA
Select AddressLine1, City
FROM BothellAddresses
---DROP TABLE
DROP TABLE BothellAddresses
GO
2. INSERT INTO SELECT
Below method will need table to be created prior to inserting data. Its really useful when table is already created and you want insert data from
another table.
Use AdventureWorks2008R2;
Go
---Create Table
CREATE TABLE BothellAddresses (AddressLine1 NVARCHAR(60), City NVARCHAR(30))
---Insert into above table using SELECT
INSERT INTO BothellAddresses(AddressLine1, City)
SELECT AddressLine1, City
FROM Person.Address
where City = 'Bothell';
---VERIFY DATA
Select AddressLine1, City
FROM BothellAddresses
---DROP TABLE
DROP TABLE BothellAddresses
GO
Regards,
Vishal Patel
Blog: http://vspatel.co.uk
Site: http://lehrity.com -
How to Insert a record in a database table in debugging mode in production
Hi,
How to Insert a record in a database table in debugging mode in production ?
Waiting for kind response.
Best Regards,
Padhy
Moderator Message : Duplicate post locked.
Moderator message : Warning. Don't create multiple threads for same question.
Edited by: Vinod Kumar on May 12, 2011 11:02 AM
Edited by: Vinod Kumar on May 12, 2011 11:04 AMHi Senthil,
Regards,
Phani Raj Kallur
Message was edited by: Phani Raj Kallur -
How to insert array of records in Storage table and Nested table same time??
Hi,
I am using ProC++ ( Oracle 8i) . I want to insert a host array
in a table. That table has a nested table in it. So for every
record in my host array, there are muliple records to be
inserted in Nested table. How is this possible using pro*C??
Pls help.
Thanks
NiveditaHave a look at the Oracle 9i PL/SQL manual, which has an example.
-
How to cast RECORD of nested tables into OBJECT of nested tables
Right, we have an existing massive pl/sql package where some of the processing is taking too long so they want to try multithreading it.
The data in this package is stored in an array of records which contains nested tables, which themselves contain nested tables.
So, we want to split this table into 10, and submit them to 10 dbms_jobs to run concurrently, write the modified arrays to the database so they can be picked up again by the original process.
I'm stuck on converting the associative array of data (containing tables of records) into objects which can be stored in the DB.
My database objects:
CREATE OR REPLACE
TYPE ktest_claims_rt IS OBJECT
col1 varchar2(10)
,col2 varchar2(10));
CREATE OR REPLACE
TYPE ktest_claims_tt IS TABLE OF ktest_claims_rt;
CREATE OR REPLACE
TYPE ktest_driver_rt IS OBJECT
col1 varchar2(10)
,col2 varchar2(10)
,claims_nt ktest_claims_tt);
CREATE OR REPLACE
TYPE ktest_driver_tt IS TABLE OF ktest_driver_rt;
CREATE OR REPLACE
TYPE ktest_policy_rt IS OBJECT
col1 varchar2(10)
,col2 varchar2(10)
,driver_nt ktest_driver_tt);
CREATE OR REPLACE
TYPE ktest_policy_tt IS TABLE OF ktest_policy_rt;
CREATE TABLE ktest_job_table
(job_no NUMBER
,tab_type VARCHAR2(3)
,policy_nt ktest_policy_tt
NESTED TABLE policy_nt STORE AS policy_nested_tab
(NESTED TABLE driver_nt STORE AS driver_nested_tab
(NESTED TABLE claims_nt STORE AS claims_nested_tab))
/ And my local package versions:
TYPE claims_rt IS RECORD
col1 varchar2(10)
,col2 varchar2(10));
TYPE claims_tt IS TABLE OF claims_rt INDEX BY PLS_INTEGER;
TYPE driver_rt IS RECORD
col1 varchar2(10)
,col2 varchar2(10)
,claims_nt claims_tt);
TYPE driver_tt IS TABLE OF driver_rt INDEX BY VARCHAR2(20);
TYPE policy_rt IS RECORD
policy_no policy.policy_no%TYPE
,driver_tab driver_tt
,other_col VARCHAR2(20));
TYPE policy_tt IS TABLE OF policy_rt
INDEX BY pls_integer;
main_table policy_tt;What I can't get through my pea sized brain is how to turn "main_table" into an array based on ktest_policy_tt.
I got as far as:
FUNCTION convert (p_table IN policy_tt) RETURN ktest_policy_tt
IS
db_vers ktest_policy_tt := ktest_policy_tt();
db_rec ktest_policy_rt;
BEGIN
FOR i IN p_table.FIRST..p_table.LAST
LOOP
db_rec := ktest_policy_rt(p_table(i).policy_no
,p_table(i).other_col
,ktest_driver_tt(p_table(i).driver_tab(i).col1
,p_table(i).driver_tab(i).col2
,ktest_claims_tt(p_table(i).driver_tab(i).claims_nt(i).col1
,p_table(i).driver_tab(i).claims_nt(i).col1
db_vers(i) := db_rec;
END LOOP;
END;but, apart from the fact that it only coverts the first row of each table, it doesn't compile:
LINE/COL ERROR
139/10 PL/SQL: Statement ignored
143/52 PLS-00306: wrong number or types of arguments in call to
'KTEST_CLAIMS_TT'
143/52 PLS-00306: wrong number or types of arguments in call to
'KTEST_CLAIMS_TT'I'd appreciate any help as this is getting urgent.
Thanks!I would recommend writing your function in a more stepwise, explicit fashion rather than trying to write the conversion as basically one big constructor.
Firstly, you will require nested loops in your pl/sql code for the different levels of nested tables. This is not a choice, you need to do this.
Within each level of looping, explicitly create the object of the desired type before adding it to the table / record as need be.
cheers,
Anthony -
How to insert a java object int derby database
hi,
i have a problem , ie..i want to insert my java object int database derby.and also i need to retrieve that object from database whenever i need. Any body help me to do that in derby...
ThanksOr you would design a table where the columns of the table correspond to attributes of the object. Then you would make a row by writing out the attributes to the columns they correspond to.
-
How to update a column in a nested table for a given record in the master t
Hi I have translations for all attributes of an item stored as a nested table
CREATE OR REPLACE TYPE T_ITM_ATTR AS OBJECT(
ATTR_NM VARCHAR2(30),
ATTR_VAL VARCHAR2(200 CHAR),
ATTR_STS_BL NUMBER(1))
INSTANTIABLE
FINAL
CREATE OR REPLACE TYPE T_ITM_ATTRIBUTES AS TABLE OF T_ITM_ATTR;
CREATE TABLE XGN_MOD_ITEMS_T
IDS NUMBER,
MOD_IDS NUMBER NOT NULL,
MOD_ITM_IDS NUMBER NOT NULL,
LGG_ID VARCHAR2(3 CHAR) NOT NULL,
ITM_TYPE VARCHAR2(50 CHAR) NOT NULL,
ITM_NM VARCHAR2(50 CHAR) NOT NULL,
ITM_BLOCK VARCHAR2(50 CHAR),
ITM_ATTR T_ITM_ATTRIBUTES,
ITM_COL1 VARCHAR2(1 CHAR),
ITM_DSC VARCHAR2(100 CHAR),
CREATED_BY VARCHAR2(30 CHAR) DEFAULT USER NOT NULL,
CREATION_DATE DATE DEFAULT SYSDATE NOT NULL,
LAST_UPDATED_BY VARCHAR2(30 CHAR),
LAST_UPDATE_DATE DATE
NESTED TABLE ITM_ATTR STORE AS NESTED_ITM_ATTR_T
TABLESPACE XGN4_TAB
PCTUSED 40
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 64K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT
What I want to do is to update only the attr_val of each item to a value coming from a temporary table where the user inserted his translations
So how can I update ?
this doesn't work since I have to know the previous value?
update table(
select t2.attr_val
from XGN_MOD_ITEMS_T t1, table(t1.itm_attr) t2
where t1.mod_itm_ids=160) attr
set value(attr) = 'Profil'
where value(attr) = 'Profile'
This updates all occurences for all entries wich doesn't work either because I have for each language another record
UPDATE /*+ NESTED_TABLE_GET_REFS */
NESTED_ITM_ATTR_T
SET attr_val = 'SHIT'
WHERE attr_val = 'Profile'http://www.psoug.org/reference/nested_tab.html
Look for UPDATE. There is a working demo on the page.
That said nested tables are not a good place to store data. Reconsider using relational tables with, if necessary, object views. -
Search in Nested Tables and Insert the result into new Nested Table!
How can I search in Nested Tables ex: (pr_travel_date_range,pr_bo_arr) using the SQL below and insert the result into a new Nested Table: ex:g_splited_range_arr.
Here are the DDL and DML SQLs;
Don't worry about the NUMBER( 8 )
CREATE OR REPLACE TYPE DATE_RANGE IS OBJECT ( start_date NUMBER( 8 ), end_date NUMBER( 8 ) );
CREATE OR REPLACE TYPE DATE_RANGE_ARR IS TABLE OF DATE_RANGE;
DECLARE
g_splited_range_arr DATE_RANGE_ARR := DATE_RANGE_ARR( );
g_travel_range DATE_RANGE := DATE_RANGE( '20110101', '99991231' );
g_bo_arr DATE_RANGE_ARR := DATE_RANGE_ARR( DATE_RANGE( '20110312', '20110317' ), DATE_RANGE( '20110315', '20110329' ) );
FUNCTION split_date_sql( pr_travel_date_range DATE_RANGE,
pr_bo_arr DATE_RANGE_ARR )
RETURN DATE_RANGE_ARR
IS
l_splited_range_arr DATE_RANGE_ARR;
BEGIN
SELECT start_date, end_date
INTO l_splited_range_arr(start_date, end_date)
FROM (WITH all_dates
AS (SELECT tr_start_date AS a_date, 0 AS black_out_val FROM TABLE( pr_travel_date_range )
UNION ALL
SELECT tr_end_date, 0 FROM TABLE( pr_travel_date_range )
UNION ALL
SELECT bo_start_date - 1, 1 FROM TABLE( pr_bo_arr )
UNION ALL
SELECT bo_end_date + 1, -1 FROM TABLE( pr_bo_arr )),
got_analytics
AS (SELECT a_date AS start_date,
LEAD( a_date ) OVER (ORDER BY a_date, black_out_val) AS end_date,
SUM( black_out_val ) OVER (ORDER BY a_date, black_out_val) AS black_out_cnt
FROM all_dates)
SELECT start_date, end_date
FROM got_analytics
WHERE black_out_cnt = 0 AND start_date < end_date
ORDER BY start_date);
RETURN l_splited_range_arr;
END;
BEGIN
g_splited_range_arr := split_date_sql(g_travel_range,g_bo_arr);
FOR index_g_splited_range_arr IN g_splited_range_arr .FIRST .. g_splited_range_arr .LAST LOOP
DBMS_OUTPUT.PUT_LINE('g_splited_range_arr[' || index_g_splited_range_arr || ']: ' || g_splited_range_arr(index_g_splited_range_arr).start_date || '-' || g_splited_range_arr(index_g_splited_range_arr).end_date );
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
NULL;
END;Or can I create a VIEW with parameters of Nested Tables in it so I can simply call
SELECT *
BULK COLLECT INTO g_splited_range_arr
FROM view_split_date(g_travel_range,g_bo_arr);@riedelme
For your questions:
1) I don't want to store in the database as a nested table
2) I don't want to retrieve data from the database. Data will come from function split_date() parameter and data will be processed in the function and function will return it in nested table format. For more detail please look at the raw function SQL.
I have a SQL like:
WITH all_dates
AS (SELECT tr_start_date AS a_date, 0 AS black_out_val FROM travel
UNION ALL
SELECT tr_end_date, 0 FROM travel
UNION ALL
SELECT bo_start_date - 1, 1 FROM black_out_dates
UNION ALL
SELECT bo_end_date + 1, -1 FROM black_out_dates),
got_analytics
AS (SELECT a_date AS start_date,
LEAD( a_date ) OVER (ORDER BY a_date, black_out_val)
AS end_date,
SUM( black_out_val ) OVER (ORDER BY a_date, black_out_val)
AS black_out_cnt
FROM all_dates)
SELECT start_date, end_date
FROM got_analytics
WHERE black_out_cnt = 0 AND start_date < end_date
ORDER BY start_date;I want to change the tables black_out_dates and travel to Nested Array so I can use it in a function with Nested Array travel and Nested Array black_out_dates parameters and the function will return Nested Array of date ranges.
Here is what I want in raw SQL:
DECLARE
g_splited_range_arr DATE_RANGE_ARR := DATE_RANGE_ARR( );
g_travel_range DATE_RANGE := DATE_RANGE( '20110101', '99991231' );
g_bo_arr DATE_RANGE_ARR := DATE_RANGE_ARR( DATE_RANGE( '20110312', '20110317' ), DATE_RANGE( '20110315', '20110329' ) );
FUNCTION split_date_sql( pr_travel_date_range DATE_RANGE,
pr_bo_arr DATE_RANGE_ARR )
RETURN DATE_RANGE_ARR
IS
l_splited_range_arr DATE_RANGE_ARR;
BEGIN
SELECT start_date, end_date
INTO l_splited_range_arr(start_date, end_date)
FROM (WITH all_dates
AS (SELECT tr_start_date AS a_date, 0 AS black_out_val FROM TABLE( pr_travel_date_range )
UNION ALL
SELECT tr_end_date, 0 FROM TABLE( pr_travel_date_range )
UNION ALL
SELECT bo_start_date - 1, 1 FROM TABLE( pr_bo_arr )
UNION ALL
SELECT bo_end_date + 1, -1 FROM TABLE( pr_bo_arr )),
got_analytics
AS (SELECT a_date AS start_date,
LEAD( a_date ) OVER (ORDER BY a_date, black_out_val) AS end_date,
SUM( black_out_val ) OVER (ORDER BY a_date, black_out_val) AS black_out_cnt
FROM all_dates)
SELECT start_date, end_date
FROM got_analytics
WHERE black_out_cnt = 0 AND start_date < end_date
ORDER BY start_date);
RETURN l_splited_range_arr;
END;
BEGIN
g_splited_range_arr := split_date_sql(g_travel_range,g_bo_arr);
FOR index_g_splited_range_arr IN g_splited_range_arr .FIRST .. g_splited_range_arr .LAST LOOP
DBMS_OUTPUT.PUT_LINE('g_splited_range_arr[' || index_g_splited_range_arr || ']: ' || g_splited_range_arr(index_g_splited_range_arr).start_date || '-' || g_splited_range_arr(index_g_splited_range_arr).end_date );
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
NULL;
WHEN OTHERS
THEN
NULL;
END;I must change the tables black_out_dates and travel in a way so it will be something like
FROM TABLE( pr_travel_date_range )to get the result into l_splited_range_arr so it will be something like
SELECT start_date, end_date
INTO l_splited_range_arr(start_date, end_date)
FROM ( -
How to delete the NULL entries in nest table
Hi,
After I used a loop and open/fetch cursor populated the object table
I found there are random NULL entries in my object table (nest table)
The data look like this
NULL NULL NULL
NULL NULL NULL
123 03-MAY-04 ACTIVE
NULL NULL NULL
NULL NULL NULL
234 21-MAY-04 ACTIVE
NULL NULL NULL
345 11-MAY-04 ACTIVE
NULL NULL NULL
How can I get rid of those NULL entries in my nest table? So it can become
123 03-MAY-04 ACTIVE
234 21-MAY-04 ACTIVE
345 11-MAY-04 ACTIVE
Additional info:
create type myType as object
(id NUMBER (10,0),
eff_date date,
status VARCHAR2(17)
create type myNestTab as table of myType;
I have tried Delete procedure in following two ways.
Version 1:
FOR i IN l_my_nest_tab.FIRST..l_my_nest_tab.LAST
LOOP
IF l_my_nest_tab(i).id IS NULL THEN
l_curr_event_tb.DELETE(i);
END IF;
END LOOP;
Version 2:
FOR i IN l_my_nest_tab.FIRST..l_my_nest_tab.LAST
LOOP
IF l_my_nest_tab(i) IS NULL THEN
l_curr_event_tb.DELETE(i);
END IF;
END LOOP;
Both of them give me the error no data found. And only left me the first NOT NULL entry in the table.
123 03-MAY-04 ACTIVE
Thanks in avdance.Hi Vishnu,
u can write a report program for this and in that use the event :
AT NEW <field-name> ( use primary key)
your statements
ENDAT
for eg.
loop at itab ( herfe itab must be of type of table for which u want to track new entries)
at new matnr
write:/ new record
endat
endloop.
schedule this report in background to run in every 5 or 10 mins as per your requirement and hence changes can be tracked.
regards
Vinod
Maybe you are looking for
-
When my users create a new file I create a file named untitled, what I would like to do is check for another file named untitled, if there is one I would like to name the file untitled1 sort of like Word or OpenOffice does. Anyone know how they do th
-
How to write complex sql for this
Hi ALL, I have a requirement like this I have 5 tables which i have to join to get the result but there no join column to 2 other table. I want to get all the applications using cobal,running on UNIX. How to write the query for this 1.APP APP_i DESC
-
WS proxy for a WSDL that contains free-form xml
Hi there, I have a problem with a web service that I am using. It is the notify interface of the WS Notification specification. It contains an operation Notify that has an xsd:any element in its core. <!-- ========== Message Types for NotificationCon
-
I've set simple animation where image changes size from small to large. Image is clipped in a div. Image looks VERY blurry and pixelated in chrome (IE and Firefox are OK). Why is this happening?
-
Where can I see Controller source code
Hello all, My question might be stupid for some ADF gurus, however many people we found that R12 Pages have lots of code and there is not too much documentation about how to customise a controller. 1. I can see the *.class of my controller in the $JA