Regadrding select statements
Hello to all
Here in my requirement i did one select query logic
bt performance wise it is not working proper way
if u find any changes relevant to below select statement plz reply me
here is my Select Query
Extract all the data from the database tables .
Retrieving data from table MARA .
SELECT * FROM mara
INTO CORRESPONDING FIELDS OF TABLE it_mara
WHERE matnr IN s_matnr AND mtart IN s_mtart AND ernam IN s_ernam.
sort it_mara by matnr.
DELETE ADJACENT DUPLICATES FROM it_mara comparing all fields.
IF sy-subrc NE 0.
MESSAGE s005(zmm).
REFRESH: it_marc.
STOP.
ENDIF.
Retrieving data of Product Group Level3 on the condition that ZZPARENT should not be empty .
IF wa_mara-zzparent NE ' '.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_mara-matnr.
MOVE wa_mara-zzparent TO wa_final-prodh3.
ENDIF.
SELECT matnr werks mtvfp mfrgr ladgr prctr sernp stawn ekgrp dismm lgfsb insmk
FROM marc
INTO CORRESPONDING FIELDS OF TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks IN s_werks .
sort it_marc by matnr werks.
DELETE ADJACENT DUPLICATES FROM it_marc.
IF sy-subrc NE 0.
MESSAGE s005(zmm).
REFRESH: it_marc.
STOP.
ENDIF.
Retrieving data from table MVKE .
SELECT matnr vkorg vtweg dwerk kondm ktgrm mtpos mvgr1 mvgr2 mvgr3 mvgr4 mvgr5
FROM mvke
INTO CORRESPONDING FIELDS OF TABLE it_mvke
FOR ALL ENTRIES IN IT_MARA
where matnr = it_mara-matnr and
vkorg IN s_vkorg.
IF sy-subrc NE 0.
MESSAGE s005(zmm).
REFRESH: it_marc.
STOP.
ENDIF.
Retrieving data from table MARM, satisfying the condition for Case Pack Factor as CS .
SELECT MATNR meinh umrez laeng breit hoehe meabm volum voleh brgew
FROM marm
INTO CORRESPONDING FIELDS OF TABLE it_marm
FOR ALL ENTRIES IN IT_MARA
WHERE MATNR = IT_MARA-MATNR
AND meinh = 'CS'.
Retrieving data from table MAKT .
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE it_makt
WHERE matnr IN s_matnr .
Retrieving data from table AMPL and fetching data for field GPCCODE .
SELECT bmatn ematn
FROM ampl
INTO CORRESPONDING FIELDS OF TABLE it_ampl
FOR ALL ENTRIES IN it_mara
WHERE bmatn = it_mara-matnr
AND datuv LE sy-datum
AND datub GE sy-datum.
IF NOT wa_ampl IS INITIAL.
READ TABLE it_ampl INTO wa_ampl WITH KEY bmatn = wa_mara-matnr.
MOVE wa_ampl-ematn TO wa_final-gpccode.
ELSE.
SELECT bmatn ematn
FROM ampl
INTO CORRESPONDING FIELDS OF TABLE it_ampl
FOR ALL ENTRIES IN it_mara
WHERE bmatn = it_mara-matnr.
IF NOT wa_ampl IS INITIAL.
READ TABLE it_ampl INTO wa_ampl WITH KEY bmatn = wa_ampl-bmatn.
MOVE wa_mara-mfrpn TO wa_final-gpccode.
ELSE.
wa_final-gpccode = ' '.
ENDIF.
ENDIF.
Moving Relevant data to IT_FINAL (Final Internal Table ) .
LOOP AT it_mara INTO wa_mara .
MOVE-CORRESPONDING wa_mara TO wa_final.
MOVE : wa_mara-zzparent TO wa_final-prodh3.
READ TABLE it_mvke INTO wa_MVKE with key vkorg = wa_mvke-vkorg.
MOVE : wa_mvke-vkorg TO wa_final-vkorg,
wa_mvke-vtweg TO wa_final-vtweg,
wa_mvke-dwerk TO wa_final-dwerk,
wa_mvke-kondm TO wa_final-kondm,
wa_mvke-ktgrm TO wa_final-ktgrm,
wa_mvke-mtpos TO wa_final-mtpos,
wa_mvke-mvgr1 TO wa_final-mvgr1,
wa_mvke-mvgr2 TO wa_final-mvgr2,
wa_mvke-mvgr3 TO wa_final-mvgr3,
wa_mvke-mvgr4 TO wa_final-mvgr4,
wa_mvke-mvgr5 TO wa_final-mvgr5.
READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_marc-matnr .
MOVE : wa_marc-mtvfp TO wa_final-mtvfp,
wa_marc-mfrgr TO wa_final-mfrgr,
wa_marc-ladgr TO wa_final-ladgr,
wa_marc-prctr TO wa_final-prctr,
wa_marc-sernp TO wa_final-sernp,
wa_marc-stawn TO wa_final-stawn,
wa_marc-ekgrp TO wa_final-ekgrp,
wa_marc-dismm TO wa_final-dismm,
wa_marc-lgfsb TO wa_final-lgfsb,
wa_marc-insmk TO wa_final-insmk.
READ TABLE it_ampl INTO wa_ampl WITH KEY bmatn = wa_mara-matnr BINARY SEARCH.
MOVE : wa_ampl-bmatn TO wa_final-bmatn.
READ TABLE it_marm INTO wa_marm WITH KEY matnr = wa_mara-matnr BINARY SEARCH.
MOVE: wa_marm-meinh TO wa_final-meinh,
wa_marm-umrez TO wa_final-umrez,
wa_marm-laeng TO wa_final-laeng,
wa_marm-breit TO wa_final-breit,
wa_marm-hoehe TO wa_final-hoehe,
wa_marm-meabm TO wa_final-meabm,
wa_marm-volum TO wa_final-volum,
wa_marm-brgew TO wa_final-brgew.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_mara-matnr.
MOVE wa_makt-maktx TO wa_final-maktx.
*******************************FOR SALE ORGANIZATION CHECK BOX***************
IF c_sodata = 'X'.
SELECT matnr vkorg lvorm
FROM mvke
INTO CORRESPONDING FIELDS OF TABLE it_checkselected
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND vkorg IN s_vkorg
AND vkorg NE 'YMUS'
AND lvorm EQ ' '.
IF sy-subrc NE 0.
MESSAGE s005(zmm).
STOP.
ENDIF.
LOOP AT it_checkselected INTO wa_checkselected.
READ TABLE it_checkselected INDEX sy-index INTO wa_checkselected .
MOVE : wa_checkselected-vkorg TO wa_final-vkorg,
wa_checkselected-lvorm TO wa_final-lvorm.
ENDLOOP.
ENDIF.
***************************FOR PLANT CHECK BOX*****************************
Retrieving data if check box for Plantdata is Enabled .
IF c_pdata = 'X'.
SELECT matnr werks mtvfp mfrgr ladgr prctr sernp stawn ekgrp dismm lgfsb insmk
FROM marc
INTO CORRESPONDING FIELDS OF TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND werks IN s_werks .
READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_marc-matnr BINARY SEARCH.
MOVE : wa_marc-werks TO wa_final-werks,
wa_marc-mtvfp TO wa_final-mtvfp,
wa_marc-mfrgr TO wa_final-mfrgr,
wa_marc-ladgr TO wa_final-ladgr,
wa_marc-prctr TO wa_final-prctr,
wa_marc-sernp TO wa_final-sernp,
wa_marc-stawn TO wa_final-stawn,
wa_marc-ekgrp TO wa_final-ekgrp,
wa_marc-dismm TO wa_final-dismm,
wa_marc-lgfsb TO wa_final-lgfsb,
wa_marc-insmk TO wa_final-insmk.
SELECT werks lgnum
FROM t320
INTO CORRESPONDING FIELDS OF TABLE it_t320
FOR ALL ENTRIES IN it_marc
WHERE werks = it_marc-werks
AND werks IN s_werks.
SELECT matnr lgnum ltkza ltkze lgbkz block lhmg1 lhme1 lety1 zzcase_orient
FROM mlgn
INTO CORRESPONDING FIELDS OF TABLE it_mlgn
FOR ALL ENTRIES IN it_t320
WHERE lgnum = it_t320-lgnum
AND matnr IN s_matnr.
READ TABLE it_mlgn INTO wa_mlgn WITH KEY lgnum = wa_t320-lgnum BINARY SEARCH.
MOVE: wa_mlgn-lgnum TO wa_final-lgnum,
wa_mlgn-ltkza TO wa_final-ltkza,
wa_mlgn-ltkze TO wa_final-ltkze,
wa_mlgn-lgbkz TO wa_final-lgbkz,
wa_mlgn-block TO wa_final-block,
wa_mlgn-lhmg1 TO wa_final-lhmg1,
wa_mlgn-lhme1 TO wa_final-lhme1,
wa_mlgn-lety1 TO wa_final-lety1,
wa_mlgn-zzcase_orient TO wa_final-zzcase_orient.
SELECT matnr bklas
FROM mbew
INTO TABLE it_mbew
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
READ TABLE it_mbew INTO wa_mbew WITH KEY matnr = wa_mara-matnr BINARY SEARCH.
MOVE wa_mbew-bklas TO wa_final-bklas.
ENDIF.
APPEND wa_final TO it_final .
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM it_final comparing all fields.
IF sy-subrc NE 0.
MESSAGE s005(zmm).
STOP.
CLEAR sy-subrc.
ENDIF.
REFRESH: it_mara,it_marc,it_mvke,it_mlgn,it_ampl,it_t320,
it_checkselected.
plese help me its an urgent requirement
Points will be rewarded fro satisfying answer
Regards
ASLAM
select only those fields which u want in ur program, in the first select statement u are selecting all fields, u can avoiid that.
secondly u are using into corresponding fields of table, try to avoid that also
define the IT with fields which u r retrieving from the select statement and use into table, its more efficient that into corresponding fields
try to avoid select inside loop statement.
bye
Similar Messages
-
If statement in select statement alias
I have the following select statement. It has the alias Survivors, Deaths and "All Cases". Is it posible to use :P_LANGUAGE variable to say that -- IF :P_LANGUAGE = FRENCH THEN alias are Survivants for survivors, Décès for Deaths, Tous_les_cas for All Cases. Please advise
SELECT ALL T_NTR_MULTIBAR.CAT, T_NTR_MULTIBAR.NUM_CASES_LEFTBAR AS Survivors,
T_NTR_MULTIBAR.NUM_CASES_MIDDLEBAR AS Deaths, T_NTR_MULTIBAR.NUM_CASES_RIGHTBAR AS "All Cases"
FROM T_NTR_MULTIBAR
WHERE INSTANCE_NUM = :P_INSTANCENUM
order by ORDERSYou may not be able to add this condition inside the SQL Statement. But you can add this condition outside the statement, if you're using PL/SQL...
IF :p_language = french THEN
SELECT ALL t_ntr_multibar.cat,
t_ntr_multibar.num_cases_leftbar AS survivors,
t_ntr_multibar.num_cases_middlebar AS deaths,
t_ntr_multibar.num_cases_rightbar AS "All Cases"
ELSE
END IF; -
How to get all values from an interval using select statement
Hi,
Is it possible to write a select statement that returns all values from an interval? Interval boundaries are variable.
something like this:
select (for x in 1,1024 loop x end loop) from dual
(this, of course, doesn't work)
The result in this example should be 1024 rows of numbers from 1 to 1024. These numbers are parameters, so it is not possible to create a table with predefined values.
Thanks in advance for your help,
Mia.For your simple case, with a lower boundary of 1, you can use:
SELECT rownum
FROM all_objects
WHERE rownum <= 1024For a set of number between say 50 - 100, you can use something like:
SELECT rownum + (50 - 1)
FROM all_objects
WHERE rownum <= (100 - 50 + 1)Note, that all_objects was used only because it generally has a lot of rows. Any table with at least the number of rows in your range will work.
TTFN
John -
Select statement operators in ecc 6.
Hi Experts,
I have a small doubt about the '>=' ( greater than or equal to ) operator usage in select statement. Is this operator by any chance perform not as desired in ECC 6.0. Is it a good option to use 'GE' instead of '>='. ?
It may sound a bit awkward, but still I would like to know. I am facing a situation, which could be related to this. An early response would be highly appreciated.
I would request,you NOT TO REPLY with links/explanations which says how to use select statement. Only answer if you have the answers related to this query.
Regards,
Sandipan>
Jaideep Sharma wrote:
> Hi,
> The only difference is GE will take a little more time than >= as system need to convert the keyword into actual operator when fetching data from Database.
>
> KR Jaideep,
????? Every Open SQL statements is translated to the SQL slang the underlying database is talking regardless if you type GE or >=
If the result differs using >= or GE i would open a call at SAP instead of asking in SDN. -
How to find the number of fetched lines from select statement
Hi Experts,
Can you tell me how to find the number of fetched lines from select statements..
and one more thing is can you tell me how to check the written select statement or written statement is correct or not????
Thanks in advance
santoshHi,
Look for the system field SY_TABIX. That will contain the number of records which have been put into an internal table through a select statement.
For ex:
data: itab type mara occurs 0 with header line.
Select * from mara into table itab.
Write: Sy-tabix.
This will give you the number of entries that has been selected.
I am not sure what you mean by the second question. If you can let me know what you need then we might have a solution.
Hope this helps,
Sudhi
Message was edited by:
Sudhindra Chandrashekar -
Use of LIKE in where clause of select statement for multiple records
Hi Experts,
I have a account number field which is uploaded from a file. Now this account numbers uploaded does not match fully with sap table account numbers but it contains all of the numbers provided in the file mostly in the upright positions.
For example in file we have account number as 2ARS1 while in sap table the value is 002ARS1.
And i want to fetch data from sap table based on account number uploaded. So, i am trying to use LIKE with for all entries but its not working as mentioned below but LIKE is not working with FOR ALL ENTRIES.
data : begin of t_dda occurs 0,
dda(19) type c,
end of t_dda.
data : begin of t_bukrs occurs 0,
bukrs type t012k-bukrs,
end of t_bukrs.
data : dda type t012k-bankn,
w_dda type t012k-bankn.
CONCATENATE '%'
'2ARS1'
INTO W_DDA.
MOVE W_DDA TO T_DDA-DDA.
APPEND T_DDA.
CLEAR T_DDA.
free t_bukrs.
SELECT BUKRS
FROM T012K
into TABLE t_bukrs
for all entries in t_dda
WHERE BANKN like t_dda-dda.
Can anybody suggest what should i use to get the data for multiple account numbers using one select statement only instead on using SELECT UP TO 1 ROWS in LOOP....ENDLOOP ?
Thanks in advance,
AkashHi,
yes, For All entries won't work for LIKE with '% '.
I think the other alternative is go for Native SQL by writing sub-query
sample code is here:
data: begin of i_mara occurs 0,
matnr like mara-matnr,
matkl like mara-matkl,
end of i_mara.
exec sql.
select matnr, matkl from mara where matnr in (select matnr from marc) and matnr like '%ma' into :i_mara
endexec.
loop at i_mara.
write:/ i_mara-matnr, i_mara-matkl.
endloop.
hope u got it.
regards
Mahesh
Edited by: Mahesh Reddy on Jan 21, 2009 2:32 PM -
What is the use of additon in up to 1 rows in SELECT statement
Hi All,
What is the use of up to 1 rows in select statement.
for example
SELECT kostl
FROM pa0001
INTO y_lv_kostl UP TO 1 ROWS
WHERE pernr EQ pernr
AND endda GE sy-datum.
ENDSELECT.
I'm unable to get in wat situations we hav to add up to 1 rows
please help me out...
Thanks,
santosh.Hi,
Use "select up to 1 rows" only if you are sure that all the records returned will have the same value for the field(s) you are interested in. If not, you will be reading only the first record which matches the criteria, but may be the second or the third record has the value you are looking for.
The System test result showed that the variant Single * takes less time than Up to 1 rows as there is an additional level for COUNT STOP KEY for SELECT ENDSELECT UP TO 1 ROWS.
The 'SELECT .... UP TO 1 ROWS' statement is subtly different. The database selects all of the relevant records that are defined by the WHERE clause, applies any aggregate, ordering or grouping functions to them and then returns the first record of the result set.
Regards,
Bhaskar -
Secondary Index Select Statement Problem
Hi friends.
I have a issue with a select statement using secondary index,
SELECT SINGLE * FROM VEKP WHERE VEGR4 EQ STAGE_DOCK
AND VEGR5 NE SPACE
AND WERKS EQ PLANT
%_HINTS ORACLE
'INDEX("&TABLE&" "VEKP~Z3" "VEKP^Z3" "VEKP_____Z3")'.
given above statement is taking long time for processing.
when i check for the same secondary index in vekp table i couldn't see any DB index name with vekp~z3 or vekp^z3 or vekp____z3.
And the sy-subrc value after select statement is 4. (even though values avaliable in VEKP with given where condition values)
My question is why my select statement is taking long time and sy-subrc is 4?
what happens if a secnodary index given in select statement, which is not avaliable in that DB Table?Hi,
> ONe more question: is it possible to give more than one index name in select statement.
yes you can:
read the documentation:
http://download.oracle.com/docs/cd/A97630_01/server.920/a96533/hintsref.htm#5156
index_hint:
This hint can optionally specify one or more indexes:
- If this hint specifies a single available index, then the optimizer performs
a scan on this index. The optimizer does not consider a full table scan or
a scan on another index on the table.
- If this hint specifies a list of available indexes, then the optimizer
considers the cost of a scan on each index in the list and then performs
the index scan with the lowest cost. The optimizer can also choose to
scan multiple indexes from this list and merge the results, if such an
access path has the lowest cost. The optimizer does not consider a full
table scan or a scan on an index not listed in the hint.
- If this hint specifies no indexes, then the optimizer considers the
cost of a scan on each available index on the table and then performs
the index scan with the lowest cost. The optimizer can also choose to
scan multiple indexes and merge the results, if such an access path
has the lowest cost. The optimizer does not consider a full table scan.
Kind regards,
Hermann -
BI Publisher : SELECT statement in RTF template
Hi Guys
I have written a BI Publisher Report using XML file created from Oracle Reports(in Oracle Apps).
Repors runs from Oracle Apps perfectly ok. Now I need to fetch some data from couple of tables and display on the Report.
I am wondering whether I can directly code SELECT statement in RTF file rather than messing with Oracle Report(.rdf) file.
Please advise.
Thanks and Regards
VijayHey Vijay,
You cannot query in RTF using select :)..
You have to mess/play with RDF to do it ;)
Oh wait, did i say , we cannot in RTF, we can , but that is difficult approach to go with., keep this as an end of the world option. -
Can we use is null in our select statement in ABAP program
hi,
I want to use 'is nul' or 'not null' in select statement of my ABAP program for any field. I have written below query but I am getting sy-subrc = 4 and getting no data. Can anyone resolve this.Hi,
I think you've posted your question on the wrong forum. This is the SAP Business One development forum which is not part of ERP and doesn't include any ABAP or Netweaver programming.
For a list of forums please see here:
http://forums.sdn.sap.com/index.jspa
Kind Regards,
Owen -
Performance issue - Select statement
Hi I am having the 10 lack records in the KONP table . If i am trying to see all the records in SE11 , it is giving the short dump TSV_TNEW_PAGE_ALLOC_FAILED . I know this is because of less memory in the Server . Is there any other way to get the data ? How to optimise the below SELECT statement if i have large data in the table .
i_condn_data - is having 8 lack records .
SELECT knumh kznep valtg valdt zterm
FROM konp
INTO TABLE i_condn_data_b
FOR ALL ENTRIES IN i_condn_data
WHERE knumh = i_condn_data-knumh
AND kschl = p_kschl.
Please suggest .Hi,
try to use "UP TO n ROWS" to control the quantity of selected data in each Loop step.
Something like this:
sort itab by itab-knumh.
flag = 'X'.
while flag = 'X'.
SELECT knumh kznep valtg valdt zterm
FROM konp
INTO TABLE i_condn_data_b UP TO one_million ROWS
WHERE knumh > new_value_for_selection
AND kschl = p_kschl.
describe table i_condn_data_b lines i.
read table i_condn_data_b index i.
new_value_for_selection = i_condn_data_b-knumh.
*....your logic for table i_condn_data_b
if one_million > i.
clear flag.
endif.
endwhile.
Regards -
Retrieving multiple values from one column in SELECT statement
Hi,
I have a slight dilemma in that I'm trying to pull down all the values from a column from a select statement that includes some JOINS in it.
If I run the query at the SQL Plus prompt, it pulls back all the values/rows.
When I run the select (and prepared ) statement in my JSP, it only pulls back one of the 4 values I'm trying to retrieve.
e.g.
at the DB level :
SELECT role_name, CC_ID FROM votetbl a
INNER JOIN APPROVERS b ON
a.BUSVP = b.BUSVP AND
a.BRANCH = b.BRANCH
WHERE CC_ID = 1688this will return:
ROLE_NAME CC_ID
ops 1688
ops 1688
comply 1688
legal 1688
comply 1688
When run in my JSP, like so:
String primID3a = request.getParameter("primID");
Statement stmtovoter = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
String prepvotSQL = "SELECT role_name, CC_ID FROM votetbl a INNER JOIN APPROVERS b ON a.BUSVP = b.BUSVP AND " +
"a.BRANCH = b.BRANCH WHERE CC_ID = ?";
PreparedStatement prepvotstmt = connection.prepareStatement(prepvotSQL);
prepvotstmt.setString(1, primID3a);
ResultSet rest3 = prepvotstmt.executeQuery();
rest3.next();
String votecat = rest3.getString(1);
out.println("Vote category: "+votecat);I only get ops returned.
Do I need to run an enumerator? Or reqest.getParameterValues or use a while statement around the results set?
Any feedback and direction here is welcomed!
Thanks!Actually, I tried looping and still only get 1, but returned several times.
i.e.
PreparedStatement prepvotstmt = connection.prepareStatement(prepvotSQL);
prepvotstmt.setString(1, primID3a);
ResultSet rest3 = prepvotstmt.executeQuery();
rest3.next();
String votecat = rest3.getString(1);
while (rest3.next()) {
out.print("category roles "+votecat);
}then I get returned the following:
admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admincategory roles admin
like so.
Where as at the DB level I get
ROLE_NAME CC_ID
admin 1688
ops 1688
ops 1688
ops 1688
ops 1688
ops 1688
ops 1688
ops 1688
risk 1688
comply 1688
legal 1688
legal 1688
ops 1688
comply 1688
Maybe the while should go around the getString(1) designation? But I was thinking I'd tried that and gotten invalid cursor error
Something is definitely amiss, between the prepared statement in the servlet and the SELECT statement at the DB level.
I can totally hardcode the statement in the servlet or JSP and it will return one value potentially several times, but only one.
Other times, it will not return a value at all, even though one resides in the db.
Yet go to the DB/SQL Plus prompt and it returns perfectly. I can simply copy and paste the SELECT statement from the out.print line I made and it works like a champ in SQL Plus. Any ideas why the same exact thing cannot return the proper values within the servlet/JSP?
Yeeeeeeesh!!! : (
Message was edited by:
bpropes20 -
I m trying to find if LIMIT is a part of the select statement and if works like
set rowcount 1 in sybase....if anyone can post the generic select statement with LIMIT in it that would be great!
any help or input will be greatly appreciated
Thanks!Hallo,
i don't know sybase, but it is probably rownum
select * from scott.emp
where rownum < 3
Regards
Dmytro -
hi i have a problem.
i want to extract records from three fields in a table using select statement.after extraction.
if there is no records in the three fields i had to give another condition.can any body provide code for thisHI,
try with this
select field1 field1 field 1
from <tablename>
into itab1
where
condition1...
now u check for
if sy-subrc ne 0. OR itab1[] is initial.
select field1 field1 field 1
from <tablename>
into itab1
where
condition1...
condition2...
endif.
If i am not clear ... reply back
Santhosh -
Is there any way to Mask the Name when a select statement is issued?
Dear all,
Is there any way to mask the name .. i mean if User issue a select statement in a customer table the real name should come like ' ABCXXXDEFXXCFXX'... Which is not the actual name?
e.g if Name: CHIEV SONG MEE
If user issue a statment select * from customers;
The Result Should come something Like this:
Name
CHXXV SXNG MXX
Thank Youuser3029023 wrote:
but it seems there is no option in oracle it self which can be used as there they are saying to get a data masking software which we can't due to some internal issues....I would not say that. How one implements masking depends entirely on the requirements that need to be met.
For example, schema A owns all the tables. Schema B can be created as a "trusted" schema - in other words, schema A trusts schema B and allows it full access (with grants) to its tables. Schema B implements data masking as views. For each table in A, a view exists in B that implements the required masking. B can now grant select access on these views to user C. User C will see the same data object names in B as it would have if it used A - only, by using the B data objects it uses masked data objects and not the original source data objects.
Another example - schema Dev is to have all the data objects of schema Prod, but masked where needed. One can use CTAS (Create Table As Select) to create the required tables in Dev with masked values where relevant. This Dev schema can be "refreshed" on weekends by dropping all tables and getting a new fresh copy of production data and masking it - ready for the next week's development cycle.
If the application use is for example APEX, then instead of coding SQL directly as reporting regions to display, a function is used instead. APEX supports reporting regions where it calls a function and this function provides the APEX run-time with the SQL to execute and contents to render. It is easy to use this approach to implement logic in functions that masked column data depending on who the APEX user is, the security/role attributes of the user, and so on.
No there is not a single "+mask this column!+" feature in Oracle.. but that does not mean that such a feature is not supported and cannot be implemented. Oracle has a very comprehensive and rich set of tools - more so than most (if not all) other RDBMS products.
It is up to the architect/designer/developer to use this toolkit in creating a system that meets the specific requirements at hand.
Maybe you are looking for
-
PCS no longer working with contacts and 6086
I have applied the latest release of PC Suite 6.84.10.3. Previously the installed level was 6.83.14.1 The send/read/write message still doesn't work but hangs the Windows Explorer for a while (this hang didn't occur previously) But now, the contact f
-
Mouse clicks not working: hyperlinks and closing tabs require multiple clicks
When I click on the "x" icon to close a tab the tab will not close. After clicking a second, or sometimes third time, the tab will close. Same thing happens with hyperlinks. Also, Firefox seems slow and lethargic.
-
How to resolve the serial communicat​ion error in HP34970?
I want to use serial port to commnucation between pc and hb34970. In gpib mode, it is ok. But in serial mode, report error. just like this: for setting com2: 16:11:47.359 2009-8-26 [Init_dq_Device]error:-1073807339--HP34970A Initialize.vi->Init_DQ_D
-
Blue pixel in iTunes HD movies
I enjoy renting HD movies in iTunes, however, i noticed something really odd. It's barely noticeable when watching, but there's a blue pixel visible in all the HD movies I've watched recently. It is in the upper left-hand corner of the screen. I even
-
Single cycle plan with counter in plant maintenance
Dear Experts, I am creating single cycle plant with performance based with couter reading. 1 I have crated a measuring point with counter in running hrs 2 Created a single cycle plan and given the couter no. there 3 Since i hv given 4000 hrs in plan,