runtime business area
Oct, November 11, 2002 - 11:38 pm UTC
Hi Tom
Thanks for great support to all.
Please let us know is it possible to hide Discoverer 4.1 business area and work book from clients/user ,somthing like runtime forms and report in DEv2k.
Other wise after installing module to client side its open to all customers.
Thanks
Oct
November 12, 2002 - 10:17 am UTC
I asked Derrick Cameron, my discoverer guru, and he says:
Disco admin grants users and/or roles to business areas. If not granted they don't see it when creating/running workbooks. Same goes for workbooks, although granting in that case is not done in admin, but is done by workbook owner in desktop or sqlplus/java
Implementing a secuirty policy
Navaz, November 19, 2002 - 4:41 am UTC
The Below code from the site
(
http://asktom.oracle.com/~tkyte/article2/index.html
SQL> create function my_security_function( p_schema in varchar2,
2 p_object in varchar2 ) return varchar2
3 as
4 begin
5 if ( user = 'RLS_ADMIN' ) then
6 return '';
7 else
8 return 'owner = USER';
9 end if;
10 end;
11 /
Function created.
In the above Function i need to include one more condition
how i need to include?
Code shown below filters by business entity(company)
but i still need filter by customers for the same object please explain
create or replace function my_security_function(p_schema in varchar2,
p_object in varchar2)
return varchar2
as
V_BE VARCHAR2(50);
Begin
v_be := ('HTE-004','HTE');
v_be := 'BE_ID'||' '||'IN'||' '||V_BE;
if (user = 'V5100CUBE') then
return (V_BE);
elsif (user = 'JOHN') then
return 'BE_ID = KCT';
else
return '';
end if;
end;
--
begin
dbms_rls.add_policy
( object_schema => 'V5100',
object_name => 'INVENTORY_SERIAL_NUMBERS',
policy_name => 'MY_POLICY',
function_schema => 'V5100',
policy_function => 'my_security_function',
statement_types => 'select, insert, update, delete' ,
update_check => TRUE );
end;
--
November 19, 2002 - 7:32 am UTC
Just return whatever predicate you need? your code isn't correct it would be:
if ( user = 'V5100CUBE' ) then
return 'be_id in ( ''HTE-004'', ''HTE'' ) ';
elsif ( user = 'JOHN' ) then
return 'be_id = ''KCT'' ';
else
return '';
end if;
if you have something to add like "and company = ..." just add it:
if ( user = 'V5100CUBE' ) then
return 'be_id in ( ''HTE-004'', ''HTE'' ) AND company = <whatever> ';
elsif ( user = 'JOHN' ) then
return 'be_id = ''KCT'' ';
else
return '';
end if;
ashraf
ashraf, November 21, 2002 - 6:22 am UTC
when i use a discoverer with analysis 2 million records with sql that return about 750 records i get a message call not all data is retrived the report will be inacurate
how and why
November 21, 2002 - 1:14 pm UTC
Derrick says:
yes. There is a setting that sets the maximum number of rows that can be returned, and when you have an aggregated crosstab query (with page items), Disco will retrieve up to your max, but warns you the aggregations are based on what is available and not necessarily what is in the table
so, how to get the entire thing..
a couple of things... when a summary query is issued to the db, the aggregation is done there. But, it is quite possible that even after the aggregation the number of rows exceeds your limit. This is often caused by the inclusion of a page item (LOV on the top) which drives the detail up. Notwithstanding that, if you do indeed have a lot to display they you can bump up the row limit. It is fairly low in default... maybe 1000, 5000 i don't know. I aways bump up to 50k or 100k - but then there is network issues to consider. It is not practical to view very large volumns of data so I think the approach is sound (setting limits, where processing is done, etc.). If you set a condition, again the filter is set in the query at the db, so that can be used.
Implementiong a security policy
Navaz, November 22, 2002 - 2:23 am UTC
create or replace function my_security_function(p_schema in varchar2,
p_object in varchar2)
return varchar2
as
begin
if ( user = 'V5100CUBE' ) then
return 'be_id in ( ''HTE-004'', ''HTE'' ) ';
elsif ( user = 'JOHN' ) then
return 'be_id = ''KCT'' ';
else
return '';
end if;
end;
begin
dbms_rls.add_policy
( object_schema => 'V5100',
object_name => 'INVENTORY_SERIAL_NUMBERS',
policy_name => 'MY_POLICY',
function_schema => 'V5100',
policy_function => 'my_security_function',
statement_types => 'select, insert, update, delete' ,
update_check => TRUE );
end;
The above functions are created. Its working fine, But I need to control by session id, how to do it,
We have the Discoverer 4.1.43.07.00 versions, Client server based reports.
While we login to Discoverer user editions connecting by v5100cube, we already control by company using dbms_rls policy ( ''HTE-004'', ''HTE'' ) so all the reports filtering by based on policy. So its working fine, but the discoverer session is still open. We are not close that discoverer.
After that we changed the company name (conditions)
( ''HTE-001'', ''HTE-002'' ) then again compile the above my security functions. Now we again open discoverer user edition for another session but connecting same user id (v5100cube). Based on the new condition now all the reports filtering. Its working fine.
Now two discoverer session is open, our problem is again open the first session to refresh that particular report the filtering conditions is automatically changed by new conditions. How can we avoid this? Is there any way to control by session id in dbms_rls policy? Please explain
November 22, 2002 - 7:23 am UTC
I don't see how you would know what policy to apply to which session. What is the difference between these sessions?
If you can answer that -- then you can write procedural logic to return the correct predicate. You should NEVER rewrite the security policy function -- you should have a single predicate policy that returns the correct and proper predicate based on the state of the session.
I think you've missed the point of the predicate policy here. You might want to re-read that paper linked to above. If you are changing the predicate function -- you are doing it very wrong.
Implementing security policy
Navaz, November 23, 2002 - 12:57 am UTC
Hope i have not explained the problem clearly in the previous mail.Now i tried to explain little bit more clear
hopefully,thank you.
Step 1:
Logging into Discoverer user edition with userid : xy and company = 'HTE01'
now the reports are filtered based on the company HTE01 and its working fine.
The above session still remains open.
Step 2:
Opening a new Discoverer user edition with same userid :xy and
different company ='HTE02'
the reports are filtered based on the company and its working fine.
Now the Problem
If i returned to first session of discoverer now the reports are
filtered by the company='HTE02' which is wrong,by right it should
filter based on 'HTE01.
How to control of overlapping of filtering?
Overlapping here means the second session of discoverer
over writes the first session
-- The below function returns the be(company) and based on this discoverer reports filters the report.
create or replace function my_security_function(p_schema in varchar2,
p_object in varchar2)
return varchar2
as
V_BE VARCHAR2(50);
Begin
v_be := ret_be; -- here i am assigning company using function.
v_be := 'be_id'||' '||'in'||' '||v_be;
if (user = 'xy') then
return (v_be); --here company will be returned based on user id
elsif (user = 'pq') then
return (v_be); --here company will be returned based on user id
else
return ' ';
end if;
end;
--the below is used for security policy
begin
dbms_rls.add_policy
( object_schema => 'V5100',
object_name => 'INVENTORY_SERIAL_NUMBERS',
policy_name => 'MY_POLICY',
function_schema => 'V5100',
policy_function => 'my_security_function',
statement_types => 'select, insert, update, delete' ,
update_check => TRUE );
end;
November 23, 2002 - 9:34 am UTC
If what you say is true -- then you have a bug in your v_be logic and you are not returning the correct "company".
re-read the above link, get the "debug" package i have there that you can use in your functions to see what they are doing.
Using a password enabled role
GVN, February 05, 2003 - 6:00 pm UTC
Can a password enabled role be used for restricting access so that the user can access the views only through Discoverer and not through any other tool (ex. MSAccess).
If this can be done, how can this be implemented through Discoverer?
Thank you for your valuable advise
February 05, 2003 - 6:16 pm UTC
not really -- and why would you limit it to discoverer? seems funky to me. either I can or I cannot access the data in a read only fashion.
Using a password enabled role
GVN, February 06, 2003 - 7:26 am UTC
The reason for limiting it to Discoverer is
with Discoverer you cannot make wrong joins,
with Discoverer you can set up limits on the number of rows retrieved, time of query execution etc.
If the user uses someother tool like MSAccess, it is possible to set up wrong joins/queries therby slowing down performance of the database.
February 06, 2003 - 8:49 am UTC
Oracle9i -- resource manager -- predicative query time estimation. Proactively cancel a query before it starts...
Oracle8i and before -- PROFILES -- limit CPU per call. Reactively kill a query when it is taking too long.
You can do stupid things in DISCO too.
=================================================================
Begin by creating the resource plan. It limits statements to
1 second in duraction for members of the plan...
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> begin
2 dbms_resource_manager.create_pending_area;
3
4 dbms_resource_manager.create_plan
5 ( 'est_max_time',
6 comment => 'limit by estimated time demo' );
7
8 dbms_resource_manager.create_consumer_group
9 ( consumer_group => 'demo',
10 comment => 'yes it is a demo' );
11
12 dbms_resource_manager.create_plan_directive
13 ( plan => 'est_max_time',
14 group_or_subplan => 'demo',
15 comment => 'its a demo',
16 MAX_EST_EXEC_TIME => 1 );
17
18 dbms_resource_manager.create_plan_directive
19 ( plan => 'est_max_time',
20 group_or_subplan => 'OTHER_GROUPS',
21 comment => 'its a demo' );
22
23 dbms_resource_manager.validate_pending_area;
24
25 dbms_resource_manager.submit_pending_area;
26
27 end;
28 /
PL/SQL procedure successfully completed.
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> set echo off
Enter to continue
=================================================================
Lets create that poor end user who is limited to 1 second statements
and assign him to this plan
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> drop user low_priority cascade;
drop user low_priority cascade
*
ERROR at line 1:
ORA-01918: user 'LOW_PRIORITY' does not exist
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> create user low_priority identified by x;
User created.
demo@ORA920.US.ORACLE.COM> grant connect, resource to low_priority;
Grant succeeded.
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> begin
2 dbms_resource_manager_privs.grant_switch_consumer_group
3 ( 'low_priority', 'demo', TRUE );
4
5 dbms_resource_manager.set_initial_consumer_group
6 ( 'low_priority', 'demo' );
7 end;
8 /
PL/SQL procedure successfully completed.
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> set echo off
Enter to continue
=================================================================
Now, we need to make the plan active
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> alter system set resource_manager_plan = est_max_time scope = memory;
System altered.
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> connect low_priority/x
Connected.
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM>
demo@ORA920.US.ORACLE.COM> set echo off
Enter to continue
=================================================================
Now, we'll create a table, try to select from it and then see
what happens when we attempt a stupid query
low_priority@ORA920.US.ORACLE.COM>
low_priority@ORA920.US.ORACLE.COM> create table t as select * from all_objects;
Table created.
low_priority@ORA920.US.ORACLE.COM>
low_priority@ORA920.US.ORACLE.COM> analyze table t compute statistics;
Table analyzed.
low_priority@ORA920.US.ORACLE.COM>
low_priority@ORA920.US.ORACLE.COM> select count(*) from t;
COUNT(*)
----------
24696
low_priority@ORA920.US.ORACLE.COM>
low_priority@ORA920.US.ORACLE.COM> select count(*) from t,t;
select count(*) from t,t
*
ERROR at line 1:
ORA-07455: estimated execution time (9840 secs), exceeds limit (1 secs)
low_priority@ORA920.US.ORACLE.COM>
Discoverer ASK ?
Sue A, December 10, 2003 - 11:33 am UTC
Tom
your advice is invaluable but you don't want to get loaded down with people asking Discoverer-related questions which Derrick Cameron could answer. Any chance of an Ask Derrick for us poor benighted Discoverer users out here ?
December 10, 2003 - 3:51 pm UTC
Derrick works for me -- i forward them on.
Adhoc data browsing
A reader, November 03, 2004 - 12:24 am UTC
This has always puzzled me. We are a small IT shop, with fairly small data volume. Data model is simple, upto 100 tables with a set of user-friendly views on top of them.
Business users need to ask a lot of simple questions of the data. Right now, they all go thru a group in IT who does only reporting, adhoc and more formal. This is getting to be a bottleneck.
How do people out there let loose general, tech-savvy adhoc users to use Oracle? All the Discover demos I have seen are fairly trivial stuff, I need something more complicated than that.
For example, stuff involving stragg, scalar subqueries, scalar subqueries returning more than 1 field (using the various techniques that Tom has demonstrated here), outer joins, etc.
An example of the question in English might be, for all customers living in the NE region and having sales over a million, show the employees who worked that customer, their supervisor, office location. If any customer was the CEO of his company, get some additional information from another child table and so on and so forth.
What kind of user interface would be appropriate for this kind of question?
[Basically, IT is getting swamped with generating these fairly trivial reports and I was wondering if there is a way for power users to do it themselves]
Thanks
November 03, 2004 - 7:03 am UTC
you haven't been seeing the right discoverer demo then? it is quite capable of generating hugely complex queries.
for stuff involving the techniques i demonstrate, that reporting tool is called SQLPlus -- you use scalar subqueries in views -- you give the views to end users. You build them an end user layer.
that example would be doable in discoverer -- it is a simple subquery and either two reports (easiest) or an outer join.
instead of watching a demo, you might set up a small project to evaluate the tool(s) -- there are lots.
A reader, November 03, 2004 - 1:49 pm UTC
"you use scalar subqueries in views -- you give the views to end users"
Right, but again that would involve IT department to build view. :-( Thats exactly what I am trying to minimize!
See, what I am asking about is the expressiveness or the UI behind reporting tools. They generally assume a square table/column structure, with some aggregations, pre-defined "measures", and descriptive attributes, etc. The EUL stops there.
Is there a way to build, in a GUI, the queries of the form you typically provide here. Using, for example, scalar subqueries, CURSOR() expressions, CAST/MULTISET stuff, etc, etc?
See, my users know the data model, they know what data to get from where and how to assemble it. They just need a tool that will allow them to express these requirements.
Thanks
November 05, 2004 - 10:51 am UTC
think about it for a while, just think about it.
scalar subqueries -- they would be outer joins. they are not "necessary" to express the desired results and can only be used when you actually know what you are doing.
cursor expressions -- they are developer tools, no reporting tool wants or needs them.
cast/multiset -- well, you needed to have run DDL. create type -- it is useless without it.
A reader, November 08, 2004 - 10:29 pm UTC
"cursor expressions -- they are developer tools, no reporting tool wants or needs them"
I always wondered about this. What use are CURSOR() expressions in the real world? Why wouldnt reporting tools want/need them? They facilitate "non-square" result sets. This seems useful for the cases where life is non-square! I mean, embedded parent-child datasets, in-line 1-many results, etc.
1. How are cursor expressions used in real life?
2. Do no reporting tools make use of them, even Oracle's own Discoverer?
Thanks
November 09, 2004 - 8:35 am UTC
a reporting tool tends to always print all of the data
A cursor expression like:
select dept.*, cursor( select * from emp where emp.deptno = dept.deptno ) empinfo
from dept;
would allow the client application to get the 4 dept rows back and just "pointers" to the emp information.
If and only if the end user "clicked" on a dept -- would the pointer be derefernced -- the round trip made back to the server and the data retrieved.
A reporting tool wants
select * from emp, dept where ....;
they get all of the data, print it, format it, whatever it. The cursor() thing is nice for client applications that get lots of rows -- but don't dereference many/most of the related bits of data. The cursor expressions aren't executed (don't do IO) until you dereference, or fetch from them.
A reader, November 09, 2004 - 9:18 am UTC
"The cursor() thing is nice for client applications that get lots of rows -- but don't dereference many/most of the related bits of data. The cursor expressions aren't executed (don't do IO) until you dereference, or fetch from them"
Actually, that is really cool. I didnt know this piece. I can see many uses for this. Summary reports with drill-thru links to details, dashboard/scorecard type reports with drill. Each drill-thru link will "dereference" the CURSOR() expression and fetch the data only if needed.
It seems I cant expose a CURSOR expression in a view, so if I do want my reporting tool to use it in the fashion above, how can I go about doing this?
Thanks
November 09, 2004 - 9:29 am UTC
you'd have to ask the maker of said reporting tool if they support such a construct and if so -- how.
A reader, November 09, 2004 - 9:33 am UTC
Well, how does (if at all) Oracle Discoverer support this construct?
November 09, 2004 - 11:45 am UTC
Discoverer would not generate a query of this style, no.
CURSOR expressions
A reader, November 11, 2004 - 9:41 am UTC
Then I am a little confused. You said that no reporting tool uses/needs CURSOR() expressions. It is a developer tool where the client application can, if needed, "click" on that column and the pointer is dereferenced and data fetched.
But at that point, the client application could just as well issue the query in the cursor expression? CURSOR() cant be encapsulated in a view anyway, so the client application already has the query in it.
How does it matter whether it does
select a,b,cursor(<query>) c
or select a,b
and then issues <query> when the thing is "clicked"?
This is starting to seem more and more like a solution seeking a problem, an answer looking for a question?
Thanks
November 11, 2004 - 10:37 am UTC
I don't like applications that issue sql :)
so it is yet another way to hide sql from those applications, pull it back into the server -- where it all belongs.
if you don't like it, don't use it.
(and it does come in handy in XML generation for those non-square result sets too-- could be done with object types, but the cursor expression is nice). also
select * from table( f( cursor( select * from t order by ... ) ) );
is sort of nice -- for ETL and such...
A reader, November 11, 2004 - 12:08 pm UTC
"so it is yet another way to hide sql from those applications, pull it back into the server -- where it all belongs"
But thats what I said, a view is not allowed to have a CURSOR() expression. So, how exactly can you hide the sql from the apps and put it in the server.
A stored proc returning a refcursor is the only way I can think of? Is a refcursor even allowed to have one of its "columns" as a CURSOR expression?
Yes, I agree that using it with ETL and pipelined function is very nice.
Thanks
November 11, 2004 - 12:11 pm UTC
ref cursors.
scott@ORA9IR2> variable x refcursor
scott@ORA9IR2>
scott@ORA9IR2> begin
2 open :x for
3 select dept.*, cursor( select ename from emp where emp.deptno = dept.deptno)
4 from dept;
5 end;
6 /
PL/SQL procedure successfully completed.
scott@ORA9IR2> print x
.....
Parameterized view
A reader, November 29, 2004 - 9:01 pm UTC
OK how about parameterized views? The kind you describe in
</code>
http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:12841974988629#12968190422842 <code>
Can Discoverer make use of them?
In general, is there a way to run a stored proc to set some session-scope app context values before running a Discoverer "workbook"?
How about running a stored proc returning a refcursor?
I mean, there *has* to be something that differentiates Discoverer from the other reporting tools out there? The fact that it is a Oracle product should enable it to provide seamless access to all the Oracle-specific features, i.e. tighter database integration?
Thanks
November 30, 2004 - 7:21 am UTC
"to all" -- why "to all"
to many more? yes. analytics, Oracle specific syntax in SQL
it is very very aware of those. it is not database independent, therefore it is not afraid to use Oracle'isms.
the parameterized view? that is not an "oracle specific", rather it is more of a "trick", a programming device.
discoverer was designed and intended to build and execute ad-hoc sql. it was not designed and intended to run stored procedures.
A reader, November 30, 2004 - 10:21 am UTC
"to many more? yes. analytics, Oracle specific syntax in SQL
it is very very aware of those. it is not database independent, therefore it is not afraid to use Oracle'isms"
But I just cant see that. Can you show me one example of Discoverer being "very very aware" of Oracle-isms? Using Oracle-specific power features that would differentiate it from the other BI tools out there?
Ok the parametrized view is not a Oracle-ism, call it whatever you want, how can Discoverer make use of it?
Thanks
November 30, 2004 - 11:27 am UTC
show me another tool that makes use of any of the 40 some odd analytic functions, or rollup or cube.
If you could "see it" the GUI wasn't done right (well, except you get the answer faster, and you can get "more answers" since things you do with analytics are just sometimes impossible in plain sql)
as I said -- disco is about creating AD-HOC sql, disco is not about running stored procedures. The IMPLEMENTATION technique a developer can use, the trick I call a parameterized view isn't going to be an IMPLEMENTATION technique you use in disco.
A reader, December 01, 2004 - 9:55 am UTC
In
</code>
http://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:1014464646711#23133907443031 <code>
you asked if Cognos can do
select * from TABLE( cast(your_function(:bind_variable) as yourType ))
and since it cannot, you criticized it by saying
"sorry -- generic tools, that are database independent, mean one thing ..."
Can Discoverer do this? How?
See, I am still trying to see what competitive advantage Discoverer has over the other BI toolsets out there? Being a Oracle product, I thought it would provide access to a richer Oracle-specific featureset like: bind variables, setting app context before running a report, doing a ALTER SESSION before running report, etc. But it doesnt seem to be able do any of these things. And its not as if a RDBMS customer is already paying for Discoverer, it is licensed as a totally new product, so why would any Oracle shop consider Discoverer vs. say Cognos ReportNet? The latter's interface and functionality even in the thin client tool blows Disco out of the water!
Thanks
December 01, 2004 - 10:04 am UTC
disco doesn't do user input sql.
all of the things you refer to are "programming tools", not ad-hoc reporting tools.
To "A reader"
Gabe, December 01, 2004 - 5:52 pm UTC
<quote>so why would any Oracle shop consider Discoverer vs. say Cognos ReportNet?</quote>
A fair comparison would be between Oracle Reports and Cognos ReportNet ... both pixel quality reporting tools.
An ad-hoc query tool like Discoverer trades some of the GUI/interface flexibility for, well, the ad-hoc flexibility ... one could argue (and I am) that it gives the business end-user more (than the ability of just running a beautiful but fixed report) with less (bells and whistles).
Apps mode EUL
Sandeep, January 30, 2005 - 8:26 am UTC
Hi Tom,
We have a problem with our Oracle Apps reporting database.
Basically, we recreate it every night from a hotbackup of the production Apps database and open it and re-import a previously exported EUL schema. Obviously, this operation has a lot of failure points and performance dependencies
(backup speed/ recovery speed etc etc).
We are trying to find a way in which we can create a separate database to host our Apps mode EUL and point it towards a Physical standby (using DG) of the Prod Oracle
Apps DB. This way we could cut out the nightly destroy/create procedure of the reporting database... since the EUL schema needs to be read-write it can sit on a separate read-write instance and can connect to the read-only standby copy of the Oracle Apps DB..
The hitch we are having is trying to find a way in which the Apps mode EUL can be separated from the Apps Database!
Any idea? Is DB links/ synonyms a way forward?
(We are using Oracle Apps 11.5.9 and Discoverer 4.1.46
which comes with 9iAS. The database is 9.2.0.5)
Thanks,
Sandeep
January 30, 2005 - 9:43 am UTC
<quote>
Obviously,
this operation has a lot of failure points and performance dependencies
(backup speed/ recovery speed etc etc).
</quote>
why is it almost everytime I see "obviously" I get the actual "different feeling"
I don't think that DG is the way forward, introducing dblinks and other things will take you into the realm of 'it is really hard to support you with disco issues'
Why not just put the EUL into apps prod database (but don't use it).
Disk to Disk backup the apps prod instance.
Tape backup the disk image (apps prod database just got backed up lots faster).
Open the disk backup.
(I'm not a disco expert btw)
To Gabe
A reader, January 30, 2005 - 4:14 pm UTC
"A fair comparison would be between Oracle Reports and Cognos ReportNet ... both pixel quality reporting tools...An ad-hoc query tool like Discoverer trades some of the GUI/interface flexibility for, well, the ad-hoc flexibility"
Thats not true. Cognos ReportNet is both an adhoc-query tool and a "pixel quality" managed reporting (canned) environment with the ability to schedule reports. It doesnt sacrifice anything! It is Oracle Reports + Oracle Discoverer and the interface is "sexy"! Oracle Discoverer, in all its incarnations, Java applet, thin client, etc just doesnt feel right in 2005! Its a day late and a feature short. Oracle should stick to its core competency, the database.
January 30, 2005 - 5:05 pm UTC
as soon as someone builds a tool that actually uses the database, perhaps.
But as long as they go agnostic, their core compentency isn't writing queries that perform well, that use the product you paid for.
To each their own on the interface, I prefer a browser and nothing much else installed as I move from computer to computer myself. Matter of choice there.
Scheduling Manager
Jay, January 24, 2006 - 5:38 am UTC
Hi, Tom. Great site...First of all, sorry for my bad english!!
I have a question about the Scheduling Manager in Oracle 9i Desktop. I have an user with workbooks, and he needs to schedule workbooks. I give, from Discover Administrator, all the privileges to that user ('Schedule Workbooks', 'Manage Scheduled Workbooks')... Also, I give, after read Discoverer documentation, these privileges:
GRANT CREATE PROCEDURE TO USER_DISC;
GRANT CREATE TABLE TO USER_DISC;
GRANT CREATE VIEW TO USER_DISC;
When the user tried to Scheduling a workbook from database, in the step 2 on the wizrd of scheduling workbook, when click the 'finish' button, appears this error: ORA-01031: insufficient privileges.
Help me, please!!
January 24, 2006 - 8:13 am UTC
sorry, I don't have discoverer installed, nor do I use it/administer it.
Ok...
Jay, January 27, 2006 - 3:58 am UTC
Well, at last, I find the grants that the user need to run scheduled workbooks. I give these privileges to the user directly, not to the role:
GRANT CREATE TABLE TO USER;
GRANT CREATE PROCEDURE TO USER;
GRANT CREATE VIEW TO USER;
GRANT SELECT ANY TABLE TO USER;
Thanks anyway, Tom.
Crosstab is not working
sachin, March 16, 2006 - 5:18 am UTC
Hi Tom,
We just installed discoverer 9.0.1 on windows 2k. The crosstab option is not working. Unable to create data point.
Problem disciption: Unable to merge 2 tables. If we select one table remaining tables in the list will be disabled.
Thanks in advance.
Sachin
March 16, 2006 - 2:05 pm UTC
please contact support?