Policy name and column name inside a policy function
I have the following function associated with a policy in the employee table for SSN and SALARY columns
FUNCTION empid_policy_fn (object_schema IN VARCHAR2, object_name VARCHAR2)
end;
When the policy fires, the schema name and the name of the table are passed onto this function which we can use inside this function but is there a way to get the policy name and the column name which invokes this function?. The problem here is, I'm using same function (common) for multiple policies in different tables and that's why I need to get these details.
Thanks
-Krishnamurthy
Inside your policy function you can query V$VPD_POLICY along with V$SESSION, V$SQL and USER_SEC_RELEVANT_COLS
to get the fired policy name and column_names.
Something like
SELECT v.POLICY, .........
FROM v$session ss, v$sql s, v$vpd_policy v
WHERE ss.SID = (SELECT SID
FROM v$mystat
WHERE ROWNUM = 1)
AND s.address = ss.sql_address
AND s.address = v.paraddr
AND s.hash_value = v.sql_hash
AND s.child_number = 0HTH
Similar Messages
-
How Both View Selector and Column Selector in one report dashboard section
Can we use a view selector and column selector inside a report in one section of the dashboard?
env: obiee 10g
Appreciate any links and pointers
Thanks in Advance
Kris
Edited by: user566193 on Mar 22, 2011 10:18 PMhi kris,
Can we use a view selector and column selector inside a report in one section of the dashboard?Here view selector is nothing but having multiple views and selecting depends on what end user want to see.You are saying in a single report in once section only.
If it is a single report you can go with using a column selector.
Note:-View selector and column selector combination can be used.....but it looks wierd as you need to select view at the same time the corresponding column.
UPDATED POST
Yes you can have it by creating different compound layouts with pivots in it.
Cheers,
KK
Edited by: Kranthi.K on Mar 22, 2011 11:27 PM -
Good day,
I searched through the forum and cant find anything.
I have around 300 published reports on SSRS and we are busy migrating to a new system.
They have already setup their tables on the new system and I need to provide them with a list of table names and column names that are being used currently to generate the 300 reports on SSRS.
We use various tables and databases to generate these reports, and will take me forever to go through each query to get this info.
Is it at all possible to write a query in SQL 2008 that will give me all the table names and columns being used?
Your assistance is greatly appreciated.
I thank you.
Andre.There's no straightforward method for that I guess. There are couple of things you can use to get these details
1. query the ReportServer.dbo.Catalog table
for getting details
you may use script below for that
http://gallery.technet.microsoft.com/scriptcenter/42440a6b-c5b1-4acc-9632-d608d1c40a5c
2. Another method is to run the reports and run sql profiler trace on background to retrieve queries used.
But in some of these cases the report might be using a procedure and you will get only procedure. Then its upto you to get the other details from procedure like tables used, columns etc
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
iam not able to insert data into datagrid corresponding to the column names..as iam inserting both data and column names programatically..ie iam not able to co relate the data with the column names.plzzz help me asap
A DataGrid is row-based rather than cell-based with each row
corresponding to an item in an underlying collection (specified in the
dataProvider property). In order to add data to a DataGrid you
manipulate the underlying collection, rather than the grid directly.
Based on the limited description of your problem I would imagine you
would need to create dynamic objects with property names that correspond
to the dataFields of your dynamically created datagrid columns.
So if you had created columns with dataFields "alpha", "beta" and
"gamma" on your datagrid, you could create an item in your grid by
adding the following object to your dataProvider:
var gridItem : Object = new Object();
gridItem.alpha = "alphaValue";
gridItem.beta = "betaValue";
gridItem.gamma = "gammaValue"; -
Table name input. and output i need all rows and columns using procedures
hi,
question: table name input. and output i need all rows and columns by using procedures.
thanks,
To AllAn example of using DBMS_SQL package to execute dynamic SQL (in this case to generate CSV data in a file)...
As sys user:
CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles'
GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser
/As myuser:
CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2
,p_dir IN VARCHAR2
,p_header_file IN VARCHAR2
,p_data_file IN VARCHAR2 := NULL) IS
v_finaltxt VARCHAR2(4000);
v_v_val VARCHAR2(4000);
v_n_val NUMBER;
v_d_val DATE;
v_ret NUMBER;
c NUMBER;
d NUMBER;
col_cnt INTEGER;
f BOOLEAN;
rec_tab DBMS_SQL.DESC_TAB;
col_num NUMBER;
v_fh UTL_FILE.FILE_TYPE;
v_samefile BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file);
BEGIN
c := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE);
d := DBMS_SQL.EXECUTE(c);
DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab);
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val);
WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val);
ELSE
DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000);
END CASE;
END LOOP;
-- This part outputs the HEADER
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767);
FOR j in 1..col_cnt
LOOP
v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),',');
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
IF NOT v_samefile THEN
UTL_FILE.FCLOSE(v_fh);
END IF;
-- This part outputs the DATA
IF NOT v_samefile THEN
v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767);
END IF;
LOOP
v_ret := DBMS_SQL.FETCH_ROWS(c);
EXIT WHEN v_ret = 0;
v_finaltxt := NULL;
FOR j in 1..col_cnt
LOOP
CASE rec_tab(j).col_type
WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val);
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val);
v_finaltxt := ltrim(v_finaltxt||','||v_n_val,',');
WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val);
v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),',');
ELSE
v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',',');
END CASE;
END LOOP;
-- DBMS_OUTPUT.PUT_LINE(v_finaltxt);
UTL_FILE.PUT_LINE(v_fh, v_finaltxt);
END LOOP;
UTL_FILE.FCLOSE(v_fh);
DBMS_SQL.CLOSE_CURSOR(c);
END;This allows for the header row and the data to be written to seperate files if required.
e.g.
SQL> exec run_query('select * from emp','TEST_DIR','output.txt');
PL/SQL procedure successfully completed.Output.txt file contains:
empno,ename,job,mgr,hiredate,sal,comm,deptno
7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20
7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30
7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30
7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20
7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30
7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30
7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10
7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20
7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10
7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30
7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20
7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30
7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20
7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10The procedure allows for the header and data to go to seperate files if required. Just specifying the "header" filename will put the header and data in the one file.
Adapt to output different datatypes and styles are required. -
Case sensitive table names and column names in 8i or 9i databases
Hi everybody,
I've got a couple of business-side colleagues who insist that Oracle table and column names are case sensitive. That is, there is a setting in the set up of a database that lets you pick if table and column names are case sensitive. For example, this would mean that there could be a table named EMP in a given schema schema plus a table named emp in that same schema.
Can this be true? I'd be surprised of course, but I've been surprised before.
Thanks for any direction.
-- Bill LogginsYou can do it, but I would avoid it like the plague.
SQL> create table "a" (b date);
Table created.
SQL> create table "A" (b date);
Table created.
I think I would refuse to work on a database where this has been used ! -
How to compare index names and columns from different user?
I am using below query to compare two indexes from 2 different users but even though index name and columns are same... result shows me they are different.. what I am doing wrong? Thanks
WITH t AS
(SELECT COUNT (DISTINCT index_owner || index_name || indexed_cols)
cnt
FROM ( SELECT index_owner,
index_name,
listagg (column_name, ',')
WITHIN GROUP (ORDER BY column_position)
indexed_cols
FROM dba_ind_columns
WHERE index_name='XPKTBL_A'
GROUP BY index_owner, index_name))
SELECT CASE
WHEN cnt > 1 THEN 'Indexes are different'
WHEN cnt = 0 THEN 'Indexes dont exist'
WHEN cnt > 1 THEN 'Indexes are identical'
END
commnt
FROM t
Result:
Indexes are different
but Actually if you check below they are same After when I run this query:
SELECT index_owner,
index_name,
listagg (column_name, ',') WITHIN GROUP (ORDER BY column_position)
indexed_cols
FROM dba_ind_columns
WHERE index_name='XPKTBL_A'
GROUP BY index_owner, index_name;
Result:
Index_owner
Index_name
Index_cols
USER1
XPKTBL_A
FIELD_A1
USER2
XPKTBL_A
FIELD_A1Hi,
Erhan_toronto wrote:
I am using below query to compare two indexes from 2 different users but even though index name and columns are same... result shows me they are different.. what I am doing wrong? Thanks
WITH t AS
(SELECT COUNT (DISTINCT index_owner || index_name || indexed_cols)
So index_owner is 'USER1' in one case, and 'USER2' in the other; right?
A string that starts with 'USER1' will be distinct from a string that starts with 'USER2', no matter what the rest of the string contains. Maybe you don't want to compare the owners, or maybe you meant to use some other column (such as table_name) instead of index_owner).
I hope this answers your question.
If not, post a little sample data (CREATE TABLE, CREATE INDEX and CONNECT statements), and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say which version of Oracle you're using (e.g., 11.2.0.2.0).
See the forum FAQ: https://forums.oracle.com/message/9362002 -
MS Access - Oraclec 8i: Spaces in Table Names and Columns
I have an access database that i have split into two parts.
1. Access data tables
2. Access application
The application has the data tables linked in for its use. With your workbench utility i have migrated my access data tables over but there is a big problem remaining. My access data tables have spaces in the table named and columns. In oracle all of the spaces have been replaced with underscores ... which changes things dramtically for the application. A table named "Foo Bar" is fundamentally different in access then "Foo_Bar". So, my question to you is, how can I deal with this issue. There are a lot of queries, forms, reports, etc. effected here. any ideas?The Migration Workbench has an option to use
ANSI names (don't ask me about the exact wording or where it is, haven't got it installed here at work right now :-( )
Using this option will preserve the original names unaltered. So you could just redo the
migration step with this option checked.
In my opinion, this is mixed blessings, though. Using ANSI names will certainly make
your migration job much easier (no changes to
Access application necessary) HOWEVER accessing the migrated tables from other
tools (e.g. SQL*Plus) will be kinda messy.
Example:
SELECT "Customer Name"
FROM "Customer Table"
WHERE "Customer Id" > 815.
As always, the choice is yours. grin
All the best
Michael Istinger
null -
Query to find out the table name and column name..
Hi Experts,
I have an Oracle DB in which has more than 50 tables and 100,000 records. I want to get the record which contains *"ITxtVarValue references a non existing text"* the text.
Is there any query there to find out the table name and column name of this particular record where it reside?
Please help. Any help will be rewarded.
Thanks,
GUsing this forum's search function, I found a thread that should give you an idea: How to find out a tablename
C. -
Check the table and column name in R12 web screen
Hello Friends
Please any body can tell me how can I find out the table name and column name in web based forms like supplier, customer in R12. In 11i I can find out the table name and column name from help menu by record history and diagnostic -> examine menu.
Thansk
MakshudHi,
Please see (Note: 741366.1 - How to get Supplier table information? How to get About this Page link in OA page in R12).
Thanks,
Hussein -
Special Characters and spaces in Tablenames and Column Names are allowed ?
Hi
I have created two tables in Oracle10g
as follows
SQL> create table test(columna number,columnb varchar2(20),primary key(columna));
Table created.
SQL> insert into test values(1,'test');
1 row created.
SQL> commit;
COMMIT är utfört.
SQL> create table "test quote"("#" number,abc number,primary key("#"));
Table created.
SQL> insert into "test quote" values(1,2);
1 row created.
SQL> commit;
COMMIT är utfört.
SQL> select * from "test quote";
# ABC
1 2
SQL> select * from test;
COLUMNA COLUMNB
1 test
Now I want to cache the tables and their data into TimesTen
The cache group for table test which is not having any spaces and special characters in table name and column names is created perfectly.
But when I create the cache group for table "test quote" which is having special characters and spaces it gives error :
Command>create readonly cache group w2 from testuser.test(columna number,columnb varchar2(20),primary key(columna));
Command>select * from test;
<1,test>
1 row found.
Command>create readonly cache group w3 from testuser."test quote"("#" number,abc number,primary key("#"));
5140: Could not find TESTUSER.TEST QUOTE in Oracle. May not have privileges.
Command Failed.
Now there is contradiction that why cache group for table test is created successfully and why it is not being created for table "test quote".
What I think is if special characters and spaces in column names and table names are possible in Oracle then it sould be possible in TimesTen.
Any possible solution.
Looking forward for your reply.
Please help I am stuck badly.
/AhmadHi
Problem Solved ....... Remeber only Capital letters work with special characters ......
/Ahmad -
Query to Find Table and Column Name by using a value
Dear Legends,
I hope and surfed in our forums and google to find the Table Name and Column Name by having a value(Number/String). And my where clauses are
where owner NOT IN ('SYS','SYSTEM') and
data_type IN ('CHAR','VARCHAR2','NUMBER')
May I have your help for building the query. and my query as follows
select a.owner, c.column_name, c.data_type, c.owner, c.table_name
from dba_objects a, all_tab_cols c
where a.owner NOT IN ('SYS','SYSTEM') and
where c.owner NOT IN ('SYS','SYSTEM') and
where c.data_type IN ('CHAR','VARCHAR2')
order by a.owner
Thanks,
KarthikYou can use
select * from user_tab_columns a, user_tables b
where a.table_name = b.table_name
and a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR');
Or if you want to user DBA_* tables, you can use.
select * from dba_tab_columns a, dba_tables b
where a.table_name = b.table_name
and a.owner = b.owner
and a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR')
and b.owner not in ('SYS', 'SYSTEM');
And now when I look a bit more closely, you don't need DBA_TABLES there. dba_tab_columns alone is sufficient. And requirement is still not clear yet. Why you need a group by there? If I get it right, you can use this.
select * from dba_tab_columns a
where a.data_type in ('NUMBER', 'VARCHAR2', 'NCHAR', 'CHAR')
and a.owner not in ('SYS', 'SYSTEM');
Whether you use group by or not, the query will give you the same output.
Ishan -
Table names and column names defined by other languages, not English.
Hi, everyone.
I am wondering if there are any possible problems or any inconvenience
when I define table names and column names by Japanese, not English.
Currently, we are using SQL server 2000 as a db and windows as a operating
system. In the near future, we have the plan to change the database software
and operating system to "Oracle 10g" and "Linux O/S".
I have not experienced the oracle database, which has table names and column
names defined by other languages, not English.
Personally, I would like to use English as table names and column names.
In this case, I might have to provide appropriate reasons.
Are there any possible problems or any "inconvenience" in terms of
system maintenance, development, or something else ?
What could be pros and cons in this case?
Thanks in advance.
Have a nice day.
Best Regards.
Ho.First you need to make sure your database has character set that support Japanese.
Choosing a Character Set
http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14225/ch2charset.htm#i1007681
The main "inconvenience" you will have is if the client doesn't support Japanese or unicode, it will have trouble to access the table.
And say in future after the application been developed, you want to implement the schema in some English environment, you will have hard time to do it.
My point is English tablename and column names doesn't prevent you use it in Japanese environment and save Japanese data but not vice-versa. Hope you understand. -
Toplink JPA forces database table and column names to UPPERCASE! Why?
I have recently experienced using Toplink JPA while using glassfish ... migrating an existing application to EJB 3.0 persistence. Toplink JPA, as implemented in glassfish, forces tablenames and column names from my code to be uppercase in select statements, etc. as then submitted to the database. Why? I cannot find anything in the EJB 3.0 specs on persistence that even suggests this.
This created a serious problem for me, in my application. For my code to work I had to change the names of the database tables to all uppercase, even though that meant other of my applications, already written using the original mixed case names of the databases, will no longer work unless I revise the code in those applications! (I am using mySQL as my database.)
In both Unix/Linux and Java, which are both case sensitive, If I wanted names of files or other items to be uppercase, I would have written them that way. I do not expect some middleware piece of software to muck around with the case of text I have put into my code.
I am hopeful this 'feature' of the reference implementation of the EJB Persistence API will be corrected in a subsequent version. [Maybe you can tell I am not happy!]
Thanks for listening to my rant.Robert,
I found that the name I specify in all of my @Table, @Column, ... annotations is used with the case as it is provided.
If TopLink determines the schema information through defaults then the names it comes up with are definitely upper cased by default.
Are you specifying the schema information that you want in annotations or XML?
Doug -
Passing table name and columns name as parameters to procedure
i need a procedure that take table name and column names as parameters .
it should display all values in those columns
like
if i execute procedure p ( t1,c1,c2)
it should display c1,c2 values in t1 table
if i execute procedure p ( t1, c1,c2,c3)
it should display c1,c2,c3 values in t1 tables
no of column parameters changesSee if this helps...
First, read the manual on collections.
Second, define your expected results. You want to output the results to the screen? You cannot perform a 'select' in PL/SQL. You will have to select your output into another collection, then loop through that.
Finally, I am curious why this is necessary versus performing a regular query.
Take a look at this incomplete code.
create or replace
package dave_pac
IS
TYPE col_name_list IS VARRAY(20) OF VARCHAR2(30);
PROCEDURE SFA_TAB_COL1
(p_tname IN VARCHAR2
,p_cnames IN col_name_list);
END;
create or replace
package body dave_pac
IS
PROCEDURE SFA_TAB_COL1
(P_tname IN varchar2
,p_cnames in col_name_list)
IS
l_stmt long;
l_rc number;
begin
l_stmt :='select '||p_cnames(1);
for i in 2..p_cnames.count
loop
l_stmt :=l_stmt||' , '||p_cnames(i);
end loop;
l_stmt:= l_stmt||' from '|| p_tname ;
execute immediate l_stmt;
end ;
END dave_pac;
Maybe you are looking for
-
Problem in downloading and installing application ...
hey m havng problem in downloading and installing application on mah x2-01 . many times i tried to dwnload whatsapp to mah phn and if the application isz downloaded thn while verifyng the no. it says error unitterupted problem in contacting the serv
-
Regarding Curve 9220 battery purchase!!!!
Hey there, Actually my battery of curve 9220 is dead, so I have gone to your HCL service center in Noida, India (T- touch), so they told me about two options for it either I should purchase orginal costing ₹2500 or compatible one costing ₹1450. How
-
Is it good to use Drop In Item Renderers or not??
Hi , I have seen a simple Application where the Employee's Image collected from Database is nicely displayed on to the DataGrid control . using syntax somewhat like this : <mx:DataGridColumn dataField="photo" headerText=
-
How to install capture drivers from cd?
Hello, i just bought the NX7950GT-VT2D512EZ-HD card and installed it. it should have video in but when i click on the "install capure drivers" option on the cd menu nothing happens. everthing else i click on in the menu works. the pop up information
-
Can't set wallpaper since IOS4
I no longer have the ability to save a photo as a wallpaper, I select one, and it says its saved, but, it doesnt...........my phone is a liar >:(