Need to execute block based on from clause
hi all
i've a block that is based on a from clause data source , & i've button in the previous block that should execute this one
when i wrote execute_query in that button , it got error that this function can't be done here
so how can i execute this block through the button.......
thxxxxxxxxxx
Hi miro;
Please check [this search|http://www.google.com.tr/search?hl=tr&q=execute_query%2Bbutton&meta=&aq=f&oq=]
Hope it helps
Regard
Helios
Similar Messages
-
Block based on from clause query
Hi all...
I am using forms 10g .....
When I wanted block based on from clause query...
I used this query ( SELECT * FROM exit INNER JOIN enter ON exit.ent_num = enter.ent_num where enter.depart=1)...
When I run form .....
frm-40505 oracle error unable to perform query
Thank you
Edited by: osa3_12 on Dec 10, 2009 4:33 AMhi
try something like this.
1* select empno,ename from emp where empno=empno order by 1
SQL> /
EMPNO ENAME
7000 Sarah
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
EMPNO ENAME
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
8898 Sheela
16 rows selected.
1* select empno,ename from emp where empno=7000
SQL> /
EMPNO ENAME
7000 Sarah
SQL> sarah -
Block based on "From clause query" and substitution variable
Hi Folks,
I have a "From clause query" block type, which is based on query that uses a substitution variable (:BLOCK.COLUMN) from previous block. When I run a query, then I obtain an error: ORA-01008: not all variables bound.
My query looks like:
select seq_no, prod_code, descr, curr_code,
max(decode(sched_type_code,'ROLLOVER',amt,0)) OUTSTD_DRAW,
max(decode(sched_type_code,'INTCHG',amt,decode(sched_type_code,'FEEREC',amt,0))) OUTSTD_INTEREST_FEE
from
select r.fac_no, r.prod_code, f.descr, r.prod_seq_no seq_no, r.curr_code, r.sched_type_code,sum(nvl(rep_amt,0)) amt
from repay_scheds r,
fac_prods f
where r.fac_no = f.fac_no
and r.prod_code = f.prd_code
and r.prod_seq_no = f.seq_no
and r.fac_no = :B2.FAC_NO
and r.trans_ref_from is not null
and r.status <> 'P'
group by r.fac_no, r.prod_code, f.descr, r.prod_seq_no, r.curr_code, r.sched_type_code
group by seq_no, prod_code, descr, curr_code
having max(decode(sched_type_code,'ROLLOVER',amt,0)) >0 or max(decode(sched_type_code,'INTCHG',amt,decode(sched_type_code,'FEEREC',amt,0))) > 0Once I replace that substitution variable in query condition with some exact test number then it works fine.
select seq_no, prod_code, descr, curr_code,
max(decode(sched_type_code,'ROLLOVER',amt,0)) OUTSTD_DRAW,
max(decode(sched_type_code,'INTCHG',amt,decode(sched_type_code,'FEEREC',amt,0))) OUTSTD_INTEREST_FEE
from
select r.fac_no, r.prod_code, f.descr, r.prod_seq_no seq_no, r.curr_code, r.sched_type_code,sum(nvl(rep_amt,0)) amt
from repay_scheds r,
fac_prods f
where r.fac_no = f.fac_no
and r.prod_code = f.prd_code
and r.prod_seq_no = f.seq_no
and r.fac_no = 2012500
and r.trans_ref_from is not null
and r.status <> 'P'
group by r.fac_no, r.prod_code, f.descr, r.prod_seq_no, r.curr_code, r.sched_type_code
group by seq_no, prod_code, descr, curr_code
having max(decode(sched_type_code,'ROLLOVER',amt,0)) >0 or max(decode(sched_type_code,'INTCHG',amt,decode(sched_type_code,'FEEREC',amt,0))) > 0How can I use substitution variable within query for "From clause query" block type? Or any other way how to get the same result?
Thanks for your reply.
TomasI have a solution:
Before entering block I'm calling function, that populates my block:
PROCEDURE POP_<<MY_BLOCK>>_BLOCK IS
query_txt varchar2(2000);
BEGIN
query_txt := '(select seq_no, prod_code, descr, curr_code,
max(decode(sched_type_code,''ROLLOVER'',amt,0)) OUTSTD_DRAW,
max(decode(sched_type_code,''INTCHG'',amt,decode(sched_type_code,''FEEREC'',amt,0))) OUTSTD_INTEREST_FEE
from
select r.fac_no, r.prod_code, f.descr, r.prod_seq_no seq_no, r.curr_code, r.sched_type_code,sum(nvl(rep_amt,0)) amt
from repay_scheds r,
fac_prods f
where r.fac_no = f.fac_no
and r.prod_code = f.prd_code
and r.prod_seq_no = f.seq_no
and r.fac_no = '||:B2.FAC_NO||'
and r.trans_ref_from is not null
and r.status <> ''P''
group by r.fac_no, r.prod_code, f.descr, r.prod_seq_no, r.curr_code, r.sched_type_code
group by seq_no, prod_code, descr, curr_code
having max(decode(sched_type_code,''ROLLOVER'',amt,0)) >0 or max(decode(sched_type_code,''INTCHG'',amt,decode(sched_type_code,''FEEREC'',amt,0))) > 0)';
Go_Block('<<MY_BLOCK>>' );
Clear_Block ;
Set_Block_Property( '<<MY_BLOCK>>', QUERY_DATA_SOURCE_NAME, query_txt) ;
-- populate my block --
Execute_Query ;
END;Thanks,
Tomas -
Update detail block based on FROM QUERY
I have 2 blocks in master-detail relation. The master is based on a table, the detail on from query. The Insert works fine... but whenever i want to update any field from the detail block, the items (text, lists, whatever) don't allow any updating.
Is there some workaround?
Thank you for the help
NRRTM on blocks based on from-query.
If I recall well, it says that you shoud write the DML code in on-insert, on-update and on-delete triggers - and, anyway, if I do not remember well the manual, that's what I do.
So, the on-insert trigger should have an insert into <my_dml_table>...
The on-update trigger sould have an update <my_dml_table>... where ... And there's a thing: you may have the rowid of <my_dml_query> fetched - which would be the best - or use some primary key for that table for update (not so good performance).
The on-delete trigger somewhat like the on-update trigger.
Moreover, I believe it would be better to have procedures for on-insert, on-update and on-delete grouped in one package in the database - again, this is what I use to do. -
Form blows up when clicked in data block using a FROM clause query
Hi,
I have a form that has two blocks. The detail block is based on a "FROM query clause" in the 'Query Data Source Type' in the block Properties.
I have a simple select in the 'Query Data Source Name'.
I made sure the select is enclosed in parenthesis and the alias names in the SELECT are the same as the ITEMS defined in the block
The data needs to be displayed in a tabular fashion.
When I run the form, the data is displayed correctly..but when I click the mouse on any item of this block or try to scroll down, everything just blows up and it closes my form.
I have made sure both blocks have the same properties. But, this seems to happen no matter what.
Any help in regard is greatly appreciated.
Thanks much,
VijjiThis is how I set the relationship for the detail block say BLOCK2.
1. I first do this:
Database Data Block = YES
Query Allowed = YES
Query Data Source Type = FROM clause query Query Data Source Name = ( select jio.order_header_id order_header_id, jii.item_code item_code, SUM(jii.item_qty) item_qty from joe_indv_items jii, joe_indv_orders jio where jii.indv_order_id = jio.indv_order_id group by jio.order_header_id, jii.item_code )
The master and detail need to be tied by the order_header_id which I can get from the header block.
2. In the WHEN-NEW_BLOCK-INSTANCE trigger for BLOCK2, I wrote the following where I dynamically pass the order_header_id:
DECLARE
q varchar2(1000);
BEGIN
q := '(SELECT jio.order_header_id order_header_id,
jii.item_code item_code,
SUM(jii.item_qty) item_qty
FROM joe_indv_items jii, joe_indv_orders jio
WHERE jio.order_header_id = ' || :HEADERS.order_header_id||'
AND jii.indv_order_id = jio.indv_order_id
GROUP BY jio.order_header_id, jii.item_code )';
CLEAR_BLOCK;
SET_BLOCK_PROPERTY('BLOCK1', QUERY_DATA_SOURCE_NAME, q);
EXECUTE_QUERY;
END;
I am not sure if I should write the exact select statement in the Query Data Source Name or not.
Please advice.
Thanks much,
Vijji -
[Block based on From Query] On-Lock Trigger
Hi,
I have a block based on an Emp_Dept view.
I manage updating and inserting with the On-Update and On-Insert triggers.
I wonder if I have to code this in the On-Lock trigger:
message( 'Oracle locks' );
lock table emp in share row exclusive mode;
If I want Oracle to prevent another user from updating the same row I'm updating.
Thanks for your help.
JBMThis is the code we use to lock specific records in ON-LOCK:
CURSOR crLock IS
RESOURCE_BUSY EXCEPTION;
PRAGMA EXCEPTION_INIT(RESOURCE_BUSY, -54);
SELECT ID
FROM THE_BASE_TABLE_OF_THE_VIEW
WHERE ID=:BLOCK.ID FOR UPDATE OF ID NOWAIT;
nDummy NUMBER;
BEGIN
OPEN crLock;
FETCH crLock INTO nDummy;
CLOSE crLock;
EXCEPTION
WHEN RESOURCE_BUSY THEN
message('record cannot be locked');
RAISE FORM_TRIGGER_FIALURE;
END; -
Need help, executing a SQL file from Forms
Hi everyone,
I don't know if this can be done. I want to execute a SQL file from a When-Button-Pressed trigger. I checked a couple of place but havent found anything yet on how to do this. If someone know of a way, please help.
Thanks
Ericprocedure p_call_sqlplus is
l_filename varchar2 (1000) := 'C:\abc\def\test.sql' ;
begin
host ('sqlplus /NOLOG @' || l_filename ) ;
end ;
rem ======== test.sql ========
connect scott/tiger
spool 'C:\abc\def\test'
select * from emp ;
spool off
exit
rem ======================working on the machine where forms is running -
Need to execute SQL PLUS commands from C# code
Hello all,
This is my first question here and hopefully I will get my solution :)
Right now we are doing 3 tasks manually
1) Clearing everything from a DB.
We use sql plus and execute this :
RAMNIVAS_CI/RAMNIVAS_CI@orclwex3
set pages 0
set lines 80
spool c:\delete_objects_CI
select 'drop '||object_type||' '||object_name||';'
from user_objects;
spool off
start c:\delete_objects_CI.lst
purge recyclebin;
set pages 100
select count(*) from user_objects;
RAMNIVAS_CI/RAMNIVAS_CI@orclwex3 are the username and pwd which gets input when we paste entire thing in sql plus
2) Then we restore that DB again using sql plus to do it using the command:
imp file=CL.DMP log=CL.log buffer=1000000 fromuser=RAMNIVAS_CL touser=RAMNIVAS_CL statistics=none grants=n commit=y
3)Execute sql scripts on it using sql developer. (This is not hard I guess coz I know we can use oracle client)
4) Take backup using this command:
exp RAMNIVAS_CI/RAMNIVAS_CI@ORCLWEX3 file=CI.dmp log=CI.log direct=y compress=y buffer=1000000 grants=n statistics=none
Is there anything I cna do to execute SQL PLUS commands using c#?Hi,
You can execute OS commands via the SHELL function provided in .NET. See the MSDN for more info.
Some of the things you can do directly from .NET via ODP and PLSQL, some not.
1) Dropping the user objects can be done via a plsql procedure where you open a cursor for "select 'drop '||object_type||' '||object_name||';' ..." and then use EXECUTE IMMEDIATE to execute the resulting commands. You can invoke the procedure via ODP.
2) IMP is an exe, not a sqlplus command, so you're not actually using sqlplus there. You can still use the SHELL command though to invoke that.
3) Executing SQL Scripts via ODP.NET is not something you can do very easily. If you search the threads here you should be able to find some solutions others have come up with to parse the file and execute the statements one by one, but there's nothing built in to ODP to execute a script file.
You may want to just shell out to sqlplus user/pwd@db @scriptfile.sql but you may have issues trying to track down errors if any occurred, as I'm not sure where they go in that case.
4) just as with IMP, EXP is an exe, so you could shell out to that.
Corrections/comments welcome.
Greg -
Insert in a "FROM clause query" block
I have a block based on "FROM clause query" (querying two different tables). I want to be abble to insert in this block. I wrote the DML code to insert in both tables, but I then need to stop forms who try to insert by itself, because it fails and rollback my change. How can I do this ?
If you have Oracle Server 8.1.6+ you can
create a database view with these two tables
and create a "instead of" trigger to insert
in both tables. It will be faster to
execute, your Forms becomes simpler and it
is easier to manage. Example from the
Oracle Server documentation :
CREATE TABLE customers_sj
( cust NUMBER(6),
address VARCHAR2(50),
credit NUMBER(9,2) );
CREATE TABLE customers_pa
( cust NUMBER(6),
address VARCHAR2(50),
credit NUMBER(9,2) );
CREATE TYPE customer_t AS OBJECT
( cust NUMBER(6),
address VARCHAR2(50),
credit NUMBER(9,2),
location VARCHAR2(20) );
CREATE VIEW all_customers (cust)
AS SELECT customer_t (cust, address, credit, 'SAN_JOSE')
FROM customers_sj
UNION ALL
SELECT customer_t (cust, address, credit, 'PALO_ALTO')
FROM customers_pa;
CREATE TRIGGER instrig INSTEAD OF INSERT ON all_customers
FOR EACH ROW
BEGIN
IF (:new.cust.location = 'SAN_JOSE') THEN
INSERT INTO customers_sj
VALUES (:new.cust.cust, :new.cust.address,:new.cust.credit);
ELSE
INSERT INTO customers_pa
VALUES (:new.cust.cust, :new.cust.address, :new.cust.credit);
END IF;
END;
null -
How to use From clause as a block datasources
Hi,
I want to know how to use from clause as a block datasource.
Could anyone give me an example to do that? I couldn't find it
in the help file.
I sincerely ask someone help me.
Many thanks
DianaDiana,
I presume you are getting a "FRM-40505: error unable to perform
query" when you try to execute query. I suggest you select the
"Display Error" item from the "Help" menu to see the query that
Oracle is generating. If the query that Oracle generates as a
result of your "Query data source name" is not formed correctly,
you will get the FRM-40505 error.
Copy and paste the query that is displayed into SQLPLUS and test
to see what happens when you try to execute the query from
SQLPLUS. That will give you a better idea of what the cause of
the problem is.
From your example, a query that works should look like "select
c_no from (select c_no from books)".
Keep in mind that for blocks based on FROM clause, the query that
produces the data is of the form :
SELECT <all columns in the block>
FROM <select statement entered in the "Query Data Source Name"
blockproperty>
The data source for the block is the select statement embedded in
the from clause.
Hope this helps. -
Two block :
- Block A based on table
- Block B based on FROM clause query
In WHEN-NEW-RECORD-INSTANCE of block A, I perform a SET_BLOCK_PROPERTY('BLOCK_B','QUERY_DATA_SOURCE_NAME','(...)'); and then query block B (... depends on value taken by 'code' column in block A).
At runtime it works till 'code' does not change (query_data_source_name does not change) but when I navigate to a record having a different 'code', it got the folowing message :
41380 - Cannot set the blocks query data source.
Any idea or suggestion ?Hello all i m trying dynamically change query_data_source_name but its not working.
i did the followings
Forms(10g2) block level:Query_data_source_type
Query_data_source_name:SELECT 1,2,3,4,5 FROM dual;
in control Block:
when_button_press my code is
GO_BLOCK('blk_query');
Clear_Block(No_Validate);
set_block_property('blk_query',query_data_source_name,
'SELECT col1,col2,col3,col4,col5 FROM mytable');
execute_query;
same result:unable to query error.
any one can help me regarding this issue. -
Hi,
A data block which was created using FROM clause query, can be set as master block of another block? So i want to build a detail block and the master block being the 1st block, made with FROM clause query.
Thanksi observed that a block created with FROM clause query cannot be a detail block, but it can be a master block. Correct?Yes, a From Clause based Block can be the master table in the Master - Detail relationship. I have successfully created a Form with this type of relationship! (I found my demo - I had it reversed).
I tried to create a FROM clause data block as detail block (and set a relationship with a master block) but i encountered an error at the relation and i deleted it (also the automatically generated triggers).This was my experience when I attempted a demo form that had the From Clause based block as a Detail in the Master - Detail relationship. The error in the On-Populate-Details triggers was easily fixed (the query has to be wrapped in parenthesis) but when I ran the form there was no coordination between the blocks.
but anyway, are these things written in the documentation?Not that I have ever found. It was always my understanding that if Oracle considered the data block to be a "base table block" (eg; block property Database Data Block = Yes) then all of the features of a base table block were available. The only thing I found in the documentation (Forms Help system - search on: "About creating a Master-Detail Relationship" and open the resulting document) indicated that a relationship should not be created where the detail block is based on a procedure, but it was OK if the master block was based on a procedure (see the Limitations section of the aforementioned document). I guess you could infer that this limitation applies to From Clause based blocks as well, but this is not explicitly stated in this document.
Craig... -
Using FROM clause query in block
I have a block using a FROM clause query instead of a table. I have two items in the block that correspond to the select statement. Here's the SQL statement I've entered:
SELECT BEZEICHNUNG, ZEIT_TYP_NR
FROM ZEIT_TYPE
WHERE ZEIT_TYP_NR IN
(SELECT ZEIT_TYP_NR
FROM PROM_ZEIT_TYP
WHERE PROM_TYP_NR = :GLOBAL.PROM_TYP_NR)
When I run forms, it ADDS to my SQL statement!! Here's what it does:
SELECT BEZEICHNUNG,ZEIT_TYP_NR
FROM (SELECT BEZEICHNUNG, ZEIT_TYP_NR FROM ZEIT_TYPE) WHERE ZEIT_TYP_NR IN
(SELECT ZEIT_TYP_NR
FROM PROM_ZEIT_TYP
WHERE PROM_TYP_NR = :1)
can anyone tell me why it's adding this first line to my select statement??"a from clause query" is the rather strange name forms uses for what is generally known as in an in-line view.
Your in-line view is being treated by forms the same way as it would a table, it sticks a SELECT, a list of columns determined from the database items in the block and a FROM on the beginning. If the user specifies query criteria in enter-query mode it will quite correctly apply the where clause to the outer select rather than to the in-line view. -
Need to execute tcl script from a Java Program
Hello,
I need to execute a tcl script from a Java Program. But I do not know how to call the tcl Interpreter. Can anybody help me?Iam using the exec command as follows:
Process proc =
rt.exec("C:/SpirentConnect/engines/tcl/8.3.4/windows/s
ctcl.exe C:/Hello.tcl");
But Hello.tcl is not executed.And does that exact string work on the command line?
And what is the return code from running it? -
How to execute the InDesign Javascript from outside in MAC
Hi All,
I need to execute the InDesign Javascript from outside in MAC machine.
Anyone can help me.
Thanks in advance.
Regards,
RamkumarIf you just want to imitate double clicking a file, use execute() method, e.g.:
var myJavaScriptFile = new File("~/Desktop/Test.jsx");
myJavaScriptFile.execute();
At the top of your .jsx file type #target indesign to make the script run in InDesign.
And I want to add to what Harbs said in the previous post: when you use do script command, you can also send parameters and get back values. See DoScriptParameters and DoScriptReturnValues sample scripts from InDesign CS3 Guide Scripts for details.
Maybe you are looking for
-
I am trying to analyze the data to be archived by my company. Say I have archiving object MM_MATBEL, how do I determine how many documents I have per year (or some period) and how much space each period is taking up? Thanks, -- Jackie
-
Unable to bring up Print Settings, Printer Color Management , or Copies settings on Mac with Leopard OS X 10.5.6 . I have an Epson Stylus Pro 3800 and am using Photoshop CS3 Extended. Think everything is updated for all programs, so not sure what I a
-
Having lost track of how I manage access to stored passwords, I'd like to reset every password stored in my Login Keychain, so that it will always 'Confirm before allowing access" and "Ask for Keychain Password." Is there anyway to do this in a batc
-
Wildcard Certificats and 4400 WLC
First, I know the 4400 has been EOS. I am planning on replacing this with a new controller next year as part of a larger project. In the meantime, the certificate we have setup on our guest network is due to expire soon. I am pretty familiar with how
-
Please help!.. anyone! i am getting ticked off..
hello i have a 30 gig i-pod video, i was in the process of updating my i-pod software and then getting ready to update my library. well i have a problem, my i-pod video will not show anything on the screen, i tried to reset it using the center button