Functionality In bult oracle tables
Hi
where did i get the functionality of oracle in built tabels
for example:
USER_OBJECTS table :- gives information about what are all tha objects present in the table .
type in google "oracle data dictionary views"
you should look for.. views name started with DBA_, USER_ & ALL_
Similar Messages
-
In bult oracle table functionality
Hi
where did i get the functionality of oracle in built tabels
for example:
USER_OBJECTS table :- gives information about what are all tha objects present in the table .try this
SQL> select * from dict where TABLE_NAME='USER_OBJECTS';
TABLE_NAME
COMMENTS
USER_OBJECTS
Objects owned by the user
1 row selected. -
Built in Function to Populate an access table from an Oracle Table through VB 6.0
Dear all,
Is there any built in function in VB 6.0 to populate an access table directly from an oracle table or SQL Server(Assume Both has the same columns & data type).
(Just like the DoCmd command which can be used to populate an excel sheet directly from an access table).
Please help.
Regards
Sibby.Sibby,
There is no "built-in" code in VB that I am aware of. However, you could use this code which I wrote for SQL Server. For Oracle, you would have to change to the appropriate table to get all the table names. You can filter by table name to get just your tables like I did below (My_).
'* Now select all the files and add to access.
sSQL = "SELECT name, id FROM sysobjects WHERE xtype = 'U' AND SUBSTRING(name, 1, 3) = 'My_' ORDER BY name"
Set rstTemp = OpenRdSetView(sSQL:=sSQL, adoConnection:=adoConnection)
On Error GoTo TableExistError
'* Loop through all my database tables and copy to the Access database.
With rstTemp
Do While Not .EOF
'* Copy this to the Access backup database.
sTableName = .Fields("Name").Value
'* Select all records from the SQL Server table and copy to the local Access database.
sSQL = "SELECT * INTO " & sTableName & " FROM "
sSQL = sSQL & "[odbc;dsn=" & sDSN & ";UID=" & sUID & ";pwd=" & spwd & ";]." & sTableName
adoBackupConnection.Execute sSQL, , adExecuteNoRecords
'* Go to next table.
.MoveNext
Loop
End With -
How can I load string type fielt into oracle table as a date?
I have a date field in oracle table(target) and my source is ms sql server. In my source table I have string type field include date data like '20150501'. I wanna load that data into oracle as a date field. In my target table this field type is date. But I cant load that data. It seems empty.I use convert function and its format is mssql format. How can I achive this? thanks in advance
시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]시흥 QIQ-9529-1551 정왕동출장안마 ‡ 정왕동출장마사지 월곶출장안마]
-
Error while using Oracle Table as source file :- ODQ for ODI
Hi All,
I am getting some errors while working on ODQ with Oracle Tables as source file.
If I am trying with text files (*.txt) as source and output it works fine.
Please let me know how we can connect to an oracle table which is my source file.
In the exported project -> “settings” folder
In the file named eN_transfmr_pXX.stx
For
/CATEGORY/INPUT/PARAMETER/INPUT_SETTINGS/ARGUMENTS/EN
TRY/DATA_FILE_NAME=
What I need to give? (URL – source file)
I tried with
1. jdbc:oracle:thin:@xxx.xxx.x.xx:1521:ORCL
2. jdbc:oracle:thin:UserName/Password@// xxx.xxx.x.xx:1521:ORCL
i am not sure , is there any thing missing ???
(Note: for text file I am giving “D:\Sourcefolder\customer.txt”)
If I am running the batch file directly from CMD Prompt it’s displaying the error message
“Cannot open file”
If I am connecting with ODI it’s displaying the error
com.sunopsis.dwg.function.SnpsFunctionBaseException: OS command returned 3503. …………………….
Thanks in advance…
Rathish A MHi Ratish,
ODQ supports files as inputs not Oracle tables, what you should do is:
- define an ODQ process that takes a file as an input.
- create an ODI process that dumps your Oracle table into a file that will be used by ODQ. (interface or OdiSqlUnload step)
- run the ODQ process in ODI (in a package)
- create an ODI interface that will load your ODQ output file into a DB.
You can profile Oracle tables directly using Oracle Data Profiling.
Thanks,
Julien -
Column not found error while populatin a oracle table with ODI USer
Hi,
I am trying to populate a column in a oracle table with the ODI USER name using the function getUser("USER_NAME") in the Mapping column of the Interface, But the interface throwhing an error *Column not found : Supervisor in Statement [Select......]*. but it's working fine with getUser("I_USER') the column is populating the user identifier.
can any one help me out why user is not populating.
ThanksEnclose the call to the getUser api inside single quotes
'<%=getUser("USER_NAME")%>'ID being a number can be used directly but USER_NAME returns a string that needs to be quoted -
Using FDM to load data from oracle table (Integration Import Script)
Hi,
I am using Integration Import Script to load data from oracle table to worktables in FDM.
i am getting following error while running the script.
Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done
Attaching the full error report
ERROR:
Code............................................. -2147217887
Description...................................... Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.
At line: 22
Procedure........................................ clsImpProcessMgr.fLoadAndProcessFile
Component........................................ upsWObjectsDM
Version.......................................... 1112
Thread........................................... 6260
IDENTIFICATION:
User............................................. ******
Computer Name.................................... *******
App Name......................................... FDMAPP
Client App....................................... WebClient
CONNECTION:
Provider......................................... ORAOLEDB.ORACLE
Data Server......................................
Database Name.................................... DBNAME
Trusted Connect.................................. False
Connect Status.. Connection Open
GLOBALS:
Location......................................... SCRTEST
Location ID...................................... 750
Location Seg..................................... 4
Category......................................... FDM ACTUAL
Category ID...................................... 13
Period........................................... Jun - 2011
Period ID........................................ 6/30/2011
POV Local........................................ True
Language......................................... 1033
User Level....................................... 1
All Partitions................................... True
Is Auditor....................................... False
I am using the following script
Function ImpScrTest(strLoc, lngCatKey, dblPerKey, strWorkTableName)
'Oracle Hyperion FDM Integration Import Script:
'Created By: Dhananjay
'Date Created: 1/17/2012 10:29:53 AM
'Purpose:A test script to import data from Oracle EBS tables
Dim cnSS 'ADODB.Connection
Dim strSQL 'SQL string
Dim rs 'Recordset
Dim rsAppend 'tTB table append rs object
'Initialize objects
Set cnSS = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set rsAppend = DW.DataAccess.farsTable(strWorkTableName)
'Connect to SQL Server database
cnss.open "Provider=OraOLEDB.Oracle.1;Data Source= +server+;Initial Catalog= +catalog+;User ID= +uid+;Password= +pass+"
'Create query string
strSQL = "Select AMOUNT,DESCRIPTION,ACCOUNT,ENTITY FROM +catalog+.TEST_TMP"
'Get data
rs.Open strSQL, cnSS
'Check for data
If rs.bof And rs.eof Then
RES.PlngActionType = 2
RES.PstrActionValue = "No Records to load!"
Exit Function
End If
'Loop through records and append to tTB table in location’s DB
If Not rs.bof And Not rs.eof Then
Do While Not rs.eof
rsAppend.AddNew
rsAppend.Fields("PartitionKey") = RES.PlngLocKey
rsAppend.Fields("CatKey") = RES.PlngCatKey
rsAppend.Fields("PeriodKey") = RES.PdtePerKey
rsAppend.Fields("DataView") = "YTD"
rsAppend.Fields("CalcAcctType") = 9
rsAppend.Fields("Amount") = rs.fields("Amount").Value
rsAppend.Fields("Desc1") = rs.fields("Description").Value
rsAppend.Fields("Account") = rs.fields("Account").Value
rsAppend.Fields("Entity") = rs.fields("Entity").Value
rsAppend.Update
rs.movenext
Loop
End If
'Records loaded
RES.PlngActionType = 6
RES.PstrActionValue = "Import successful!"
'Assign Return value
SQLIntegration = True
End Function
Please help me on this
Thanks,
Dhananjay
Edited by: DBS on Feb 9, 2012 10:21 PMHi,
I found the problem.It was because of the connection string.The format was different for oracle tables.
PFB the format
*cnss.open"Provider=OraOLEDB.Oracle.1;Data Source= servername:port/SID;Database= DB;User Id=aaaa;Password=aaaa;"*
And thanks *SH* for quick response.
So closing the thread......
Thanks,
Dhananjay -
How to import your MS Active Directory users in an Oracle table
Hello,
I first tried to get a Heterogenous Connection to my MS Active Directory to get information on my Active Directory users.
This doesn't work so I used an alternative solution:
How to import your MS Active Directory users in an Oracle table
- a Visual Basic script for export from Active Directory
- a table in my database
- a SQL*Loader Control-file
- a command-file to start the SQL*Loader
Now I can schedule the vsb-script and the command-file to get my information in an Oracle table. This works fine for me.
Just to share my scripts:
I made a Visual Basic script to make an export from my Active Directory to a CSV-file.
'Export_ActiveDir_users.vbs 26-10-2006
'Script to export info from MS Active Directory to a CSV-file
' Accountname, employeeid, Name, Function, Department etc.
' Richard de Boer - Wetterskip Fryslan, the Nethterlands
' samaccountname Logon Name / Account
' employeeid Employee ID
' name name
' displayname Display Name / Full Name
' sn Last Name
' description Description / Function
' department Department / Organisation
' physicaldeliveryofficename Office Location Wetterskip Fryslan
' streetaddress Street Address Harlingerstraatweg 113
' l City / Location Leeuwarden
' mail E-mail adress
' wwwhomepage Web Page Address
' distinguishedName Full unique name with cn, ou's, dc's
'Global variables
Dim oContainer
Dim OutPutFile
Dim FileSystem
'Initialize global variables
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile("ActiveDir_users.csv", True)
Set oContainer=GetObject("LDAP://OU=WFgebruikers,DC=Wetterskip,DC=Fryslan,DC=Local")
'Enumerate Container
EnumerateUsers oContainer
'Clean up
OutPutFile.Close
Set FileSystem = Nothing
Set oContainer = Nothing
WScript.Echo "Finished"
WScript.Quit(0)
Sub EnumerateUsers(oCont)
Dim oUser
For Each oUser In oCont
Select Case LCase(oUser.Class)
Case "user"
If Not IsEmpty(oUser.distinguishedName) Then
OutPutFile.WriteLine _
oUser.samaccountname & ";" & _
oUser.employeeid & ";" & _
oUser.Get ("name") & ";" & _
oUser.displayname & ";" & _
oUser.sn & ";" & _
oUser.description & ";" & _
oUser.department & ";" & _
oUser.physicaldeliveryofficename & ";" & _
oUser.streetaddress & ";" & _
oUser.l & ";" & _
oUser.mail & ";" & _
oUser.wwwhomepage & ";" & _
oUser.distinguishedName & ";"
End If
Case "organizationalunit", "container"
EnumerateUsers oUser
End Select
Next
End SubThis give's output like this:
rdeboer;2988;Richard de Boer;Richard de Boer;de Boer;Database Administrator;Informatie- en Communicatie Technologie;;Harlingerstraatweg 113;Leeuwarden;[email protected];;CN=Richard de Boer,OU=Informatie- en Communicatie Technologie,OU=Afdelingen,OU=WFGebruikers,DC=wetterskip,DC=fryslan,DC=local;
tbronkhorst;201;Tjitske Bronkhorst;Tjitske Bronkhorst;Bronkhorst;Configuratiebeheerder;Informatie- en Communicatie Technologie;;Harlingerstraatweg 113;Leeuwarden;[email protected];;CN=Tjitske Bronkhorst,OU=Informatie- en Communicatie Technologie,OU=Afdelingen,OU=WFGebruikers,DC=wetterskip,DC=fryslan,DC=local;I made a table in my Oracle database:
CREATE TABLE PG4WF.ACTD_USERS
samaccountname VARCHAR2(64)
, employeeid VARCHAR2(16)
, name VARCHAR2(64)
, displayname VARCHAR2(64)
, sn VARCHAR2(64)
, description VARCHAR2(100)
, department VARCHAR2(64)
, physicaldeliveryofficename VARCHAR2(64)
, streetaddress VARCHAR2(128)
, l VARCHAR2(64)
, mail VARCHAR2(100)
, wwwhomepage VARCHAR2(128)
, distinguishedName VARCHAR2(256)
)I made SQL*Loader Control-file:
LOAD DATA
INFILE 'ActiveDir_users.csv'
BADFILE 'ActiveDir_users.bad'
DISCARDFILE 'ActiveDir_users.dsc'
TRUNCATE
INTO TABLE PG4WF.ACTD_USERS
FIELDS TERMINATED BY ';'
( samaccountname
, employeeid
, name
, displayname
, sn
, description
, department
, physicaldeliveryofficename
, streetaddress
, l
, mail
, wwwhomepage
, distinguishedName
)I made a cmd-file to start SQL*Loader
: Import the Active Directory users in Oracle by SQL*Loader
D:\Oracle\ora92\bin\sqlldr userid=pg4wf/<password>@<database> control=sqlldr_ActiveDir_users.ctl log=sqlldr_ActiveDir_users.logI used this for a good list of active directory fields:
http://www.kouti.com/tables/userattributes.htm
Greetings,
Richard de BoerI have a table with about 50,000 records in my Oracle database and there is a date column which shows the date that each record get inserted to the table, for example 04-Aug-13.
Is there any way that I can find out what time each record has been inserted?
For example: 04-Aug-13 4:20:00 PM. (For my existing records not future ones)
First you need to clarify what you mean by 'the date that each record get inserted'. A row is not permanent and visible to other sessions until it has been COMMITTED and that commit may happen seconds, minutes, hours or even days AFTER a user actually creates the row and puts a date in your 'date column'.
Second - your date column, and ALL date columns, includes a time component. So just query your date column for the time.
The only way that time value will be incorrect is if you did something silly like TRUNC(myDate) when you inserted the value. That would use a time component of 00:00:00 and destroy the actual time. -
FUNCTION-BASED INDEX ( ORACLE 8I NEW FEATURE )
제품 : ORACLE SERVER
작성날짜 : 2004-08-16
FUNCTION-BASED INDEX ( ORACLE 8I NEW FEATURE )
==============================================
SCOPE
10g Standard Edition(10.1.0) 이상 부터 Function-based Index 기능이 지원된다.
Explanation
1. 개요
Function-based index는, 함수(function)이나 수식(expression)으로 계산
된 결과에 대해 인덱스를 생성하여 사용할 수 있는 기능을 제공한다.
질의 수행 시 해당 함수나 수식을 처리하여 결과를 가져 오는 것이 아니라,
인덱스 형태로 존재하는 미리 계산되어 있는 결과를 가지고 처리하므로
성능 향상을 기할 수 있다.
2. 제약사항
1) aggregate function 에 대한 function-based index 생성 불가.
(예 : sum(...) )
2) LOB, REF, nested table 컬럼에 대한 function-based index 생성 불가.
3. 주요 특징
1) cost-based optimizer에 의해 사용됨.
2) B*Tree / bitmap index로 생성 가능.
3) 산술식 (arithmetic expression), PLSQL function, SQL built-in
function 등에 적용 가능.
4) 함수나 수식으로 처리된 결과에 대한 range scan 가능
5) NLS SORT 지원
6) SELECT/DELETE를 할 때마다 함수나 수식의 결과를 계산하는 것이 아니라
INSERT/UPDATE 시 계산된 값을 인덱스에 저장.
7) 질의 속도 향상
8) object column이나 REF column에 대해서는 해당 object에 정의된
method에 대해 function-based index 생성 가능.
4. 생성 방법
CREATE [UNIQUE | BITMAP ] INDEX <index_name>
ON <tablename> (<index-expression-list>)
<index-expression-list> -> { <column_name> | <column_expression> }
예) CREATE INDEX EMP_NAME_INDEX ON EMP (UPPER(ENAME));
CREATE INDEX EMP_SAL_INDEX ON EMP( SAL + COMM, empno);
* Function-based index를 생성하기 위해서는 QUERY REWRITE 권한이
부여 되어 있어야만 한다.
예) GRANT QUERY REWRITE TO SCOTT;
5. Function-Based Index 사용을 위한 사전 작업
1) Function-based index는 cost based optimizer에서만 사용 가능하므로,
테이블에 대해 미리 analyze 해 주는 것이 바람직하다.
그리고 init 파일에서 OPTIMIZER_MODE 를 FIRST_ROWS 나 ALL_ROWS 등으
로 지정하거나 HINT 등을 사용하여 cost based optimizer가 사용되도록
한다.
2) init 파일에서 COMPATIBLE 파라미터 값을 8.1 이상으로 설정되어 있어야
한다.
( 예 : COMPATIBLE = 8.1.6 )
3) session/instance level 에서 QUERY_REWRITE_ENABLED 값이 TRUE 지정
되어 있어야 한다.
( 예 : ALTER SESSION SET QUERY_REWRITE_ENABLED = TRUE; )
6. 예제
1) init 파라미터에서 다음과 같이 지정
compatible = 8.1.6 (반드시 8.1이상이어야 한다)
query_rewrite_enabled = true
query_rewrite_integrity = trusted
2) SCOTT 유저에서 function_based_index 생성
create index idx_emp_lower_ename
on emp
( lower(ename) ) ;
3) EMP table analyze
analyze table emp compute statistics ;
4) PLAN_TABLE 생성
@ ?/rdbms/admin/utlxplan.sql
5) Cost based optimizer 선택
alter session set optimizer_mode = FIRST_ROWS ;
6) Query 실행
explain plan set statement_id='qry1' FOR
select empno, ename
from emp
where lower(ename) = 'ford' ;
7) PLAN 분석
SELECT LPAD(' ',2*level-2)||operation||' '||options||' '||object_name query_plan
FROM plan_table
WHERE statement_id='qry1'
CONNECT BY prior id = parent_id
START WITH id = 0 order by id ;
-> 결과
QUERY_PLAN
SELECT STATEMENT
TABLE ACCESS BY INDEX ROWID EMP
INDEX RANGE SCAN IDX_EMP_LOWER_ENAME
7. 결론
Function-based index는 적절하게 사용될 경우 성능상의 많은 이점을 가져
온다. Oracle8i Designing and Tuning for Performance에서도 가능한 한
Function-based index를 사용하는 것을 권장하고 있으며, LOWER(), UPPER()
등의 함수를 사용하여 불가피하게 FULL TABLE SCAN을 하는 경우에 대해서도
효과적으로 처리해 줄 수 있는 방안이라 할 수 있다.
Reference Documents
-------------------Partha:
From the Oracle8i Administrators Guide:
"Table owners should have EXECUTE privileges on the functions used in function-based indexes.
For the creation of a function-based index in your own schema, you must be
granted the CREATE INDEX and QUERY REWRITE system privileges. To create
the index in another schema or on another schemas tables, you must have the
CREATE ANY INDEX and GLOBAL QUERY REWRITE privileges."
Hope this helps.
Peter -
How to read a CSV file and Insert data into an Oracle Table
Hi All,
I have a Clob file as a in parameter in my PROC. . File is comma separated.need procedure that would parse this CLOB variable and populate in oracle table .
Please let me some suggestions on this.
Thanks,
Chandra Rjeneesh wrote:
And, please don't "hijack" 5 year old thread..Better start a new one..I've just split it off to a thread of it's own. ;)
@OP,
I have a Clob file as a in parameter in my PROC. . File is comma separated.need procedure that would parse this CLOB variable and populate in oracle table .You don't have a "clob file" as there's no such thing. CLOB is a datatype for storing large character based objects. A file is something on the operating system's filesystem.
So, why have you stored comma seperated data in a CLOB?
Where did this data come from? If it came from a file, why didn't you use SQL*Loader or, even better, External Tables to read and parse the data into structured format when populating the database with it?
If you really do have to parse a CLOB of data to pull out the comma seperated values, then you're going to have to write something yourself to do that, reading "lines" by looking for the newline character(s), and then breaking up the "lines" into the component data by looking for commas within it, using normal string functions such as INSTR and SUBSTR or, if necessary, REGEXP_INSTR and REGEXP_SUBSTR. If you have string data that contains commas but uses double quotes around the string, then you'll also have the added complexity of ignoring commas within such string data.
Like I say... it's much easier with SQL*Loader of External Tables as these are designed to parse such CSV type data. -
Remove carriage returns from a field in an oracle table
I have a field that is defined as a LONG in my oracle table; the data contained in this field has carriage returns/line feeds (it's free form text); as i'm selecting data from this field, i need the carriage returns removed so that the data from this field all appears on one line.
I tried using the TRANSLATE function to convert the carriage returns to something else, but that doesn't work.
Example:
Select comment from Notes:
COMMENT
the applicant called for an appointment;
an exam was scheduled for 4/1/05 at 9am;
called applicant to confirm app
this needs to be extracted as: "the applicant called for an appointment; an exam was scheduled for 4/1/05 at 9am; called applicant to confirm app"
How can i do this? Can the decode function be used to remove the carriage returns in this field?when i used translate its giving correctly,
SQL> ed
Wrote file afiedt.buf
1 select translate('the applicant called for an appointment;
2 an exam was scheduled for 4/1/05 at 9am;
3 called applicant to confirm app
4 this needs to be extracted as: "the applicant called for an appointment; an exam was scheduled
5 How can i do this? Can the decode function be used to remove the carriage returns in this field
6* ',' ') from dual
SQL> /
TRANSLATE('THEAPPLICANTCALLEDFORANAPPOINTMENT;ANEXAMWASSCHEDULEDFOR4/1/05AT9AM;CALLEDAPPLICANTTOCONF
the applicant called for an appointment; an exam was scheduled for 4/1/05 at 9am; called applicant t
SQL> ed
Wrote file afiedt.buf
1 select 'the applicant called for an appointment;
2 an exam was scheduled for 4/1/05 at 9am;
3 called applicant to confirm app
4 this needs to be extracted as: "the applicant called for an appointment; an exam was scheduled
5* How can i do this? Can the decode function be used to remove the carriage returns in this field
SQL> /
'THEAPPLICANTCALLEDFORANAPPOINTMENT;ANEXAMWASSCHEDULEDFOR4/1/05AT9AM;CALLEDAPPLICANTTOCONFIRMAPPTHIS
the applicant called for an appointment;
an exam was scheduled for 4/1/05 at 9am;
called applicant to confirm app
this needs to be extracted as: "the applicant called for an appointment; an exam was scheduled for 4
How can i do this? Can the decode function be used to remove the carriage returns in this field?
SQL> -
I want to update date field in oracle table using database adaptor
Hi Guys,
I want to update date in oracle table field which is 'DATE' type , but i am getting following error.
Pure SQL Exception.
Pure SQL Execute of update crp3apps.IFACE_SO_DATE_CHANGES set PROCESSED_DATE=? where CTRL_ID=? failed. Caused by java.sql.SQLException: ORA-01830: date format picture ends before converting entire input string
The Pure SQL option is for border use cases only and provides simple yet minimal functionality. Possibly try the "Perform an operation on a table" option instead.
</summary>
</part>
- <part name="detail">
<detail>
ORA-01830: date format picture ends before converting entire input string
</detail>
i am formated the date using following code and assigned to one variable.
ora:formatDate(ora:getCurrentDateTime(),'dd-MMM-yyyy hh:mm:ss ')
this is update query
update crp3apps.IFACE_SO_DATE_CHANGES set PROCESSED_DATE=#date where CTRL_ID=#id
Please provide solution.
regards
janardhanThe thing is that XSLT often doesn't deliver the functionality required when it comes to times.
You suggest appening "Z" to the time but this means that the time is now in UTC time. What if the system from where the date is being converted is running in NZ using local time? Other systems that recieve the date (and correctly handle the time zone) will now have a time that is out by a number of hours.
You often can't ignore the time zone (drop the 'Z') as if you send the time to a system it has to either assume the time is local to it (which may not be the case... the other system coudl be in a different time zone) or assume the time is UTC (I think crossfire does this by default).
Typically can't just append a time zone (e.g. +11:00) either as many places have daylight savings so the value to appended is variable (you then need some way of determining what the value is... either Java Embedding or a Service).
As you mention it does depend on the use case but in many circumstances using Jaba Embedding, not as suggested above but with the appropriate Java.util.Calendar classes, is the best way to handle date and time in BPEL. Even still you need to ascertain the format of times external to the system and ensure you parse them correctly.
ANd even if you do all this you can still run into problems. I've seen a real world example where two systems which both handled time zones correctly and had previously been working together for quite a while, satrted reporting different times. It turns out that only one of them had had the most recent Java Time Zone patches applied and there had been a change in the dates for daylight savings here (Australia). Be warned! -
Help Required :Excel Upload Into Oracle Table Using PLSQL Procedure/Package
Please Help , Urgent Help Needed.
Requirement is to Upload Excel file Into Oracle Table Using PLSQL Procedure/Package.
Case's are :
1. Excel File is On Users/ Client PC.
2. Application is on Remote Server(Oracle Forms D2k).
3. User Is Using Application Using Terminal Server LogIn.
4. So If User Will Use to GET_FILE_NAME() function of D2K to Get Excel File , D2k Will Try to pick File from That Remote Server(Bcs User Logind from Terminal Server Option).
5. Cannot Use Util_File Package Or Oracle Directory to Place That File on Server.
6. we are Using Oracle 8.7
So Need Some PL/SQL Package or Fuction/ Procedure to Upload Excel file on User's Pc to Oracle Table.
Please Guide me wd some Code. or with Some Pl/SQL Package, or With SOme Hint. Or any Link ....
Jus help to Sort This Issue ........
you can also write me on :
[email protected], [email protected]I also Tried to Use This
But How can i Use SQLLDR Command In Stored Procedure.
Well IN SQL*PlUS it is successfull but in Stored Procedure /Package ,PL/SQL does not recognise the OS commands.
So now my Question How can I recognise the SQLLDR Commnad in Stored Procedure. -
Help Required:How Upload Excel file Into Oracle Table Using PLSQL Procedure
Please Help , Urgent Help Needed.
Requirement is to Upload Excel file Into Oracle Table Using PLSQL Procedure/Package.
Case's are :
1. Excel File is On Users/ Client PC.
2. Application is on Remote Server(Oracle Forms D2k).
3. User Is Using Application Using Terminal Server LogIn.
4. So If User Will Use to GET_FILE_NAME() function of D2K to Get Excel File , D2k Will Try to pick File from That Remote Server(Bcs User Logind from Terminal Server Option).
5. Cannot Use Util_File Package Or Oracle Directory to Place That File on Server.
6. we are Using Oracle 8.7
So Need Some PL/SQL Package or Fuction/ Procedure to Upload Excel file on User's Pc to Oracle Table.
Please Guide me wd some Code. or with Some Pl/SQL Package, or With SOme Hint. Or any Link ....
Jus help to Sort This Issue ........
you can also write me on :
[email protected], [email protected]TEXT_IO is a PL/SQL package available only in Forms (you'll want to post in the Forms forum for more information). It is not available in a stored procedure in the database (where the equivalent package is UTL_FILE).
If the Terminal Server machine and the database machine do not have access to the file system on the client machine, no application running on either machine will have access to the file. Barring exceptional setups (like the FTP server on the client machine), your applications are not going to have more access to the client machine than the operating system does.
If you map the client drives from the Terminal Server box, there is the potential for your Forms application to access those files. If you want the files to be accessible to a stored procedure in the database, you'll need to move the files somewhere the database can access them.
Justin -
How to create hidden column in Oracle Table
Hi folks
i have one doubt regarding hidden column creation in Oracle Table..
Let me briefly explain my requirements.
I have one table called UWRMC_MAST is table contain the following columns
RMC_N_ID NUMBER(10) NOT NULL,
COB_N_ID NUMBER(2) NOT NULL,
SUBCOB_N_ID NUMBER(2),
RMC_C_CODE VARCHAR2(10 BYTE) NOT NULL,
RMC_C_NAME VARCHAR2(100 BYTE) NOT NULL,
CREATED_N_BY NUMBER(10) NOT NULL,
CREATED_D_DT DATE NOT NULL,
MODIFIED_N_BY NUMBER(10) NOT NULL,
MODIFIED_D_DT DATE NOT NULL,
RECORD_N_STS NUMBER(1) NOT NULL,
RMC_C_REMARKS VARCHAR2(256 BYTE),
EFFECT_D_DT DATE NOT NULL
RMC_N_ID is primary key
i want to create one column like Old_EFFECT_D_DT as virtual column
when ever i update the effective date that date should be insert into Old_EFFECT_D_DT i.e., Virtual Column
For example
SQL> select RMC_N_ID, COB_N_ID, SUBCOB_N_ID, RMC_C_CODE, EFFECT_D_DT from uwrmc_mast;
RMC_N_ID COB_N_ID SUBCOB_N_ID RMC_C_CODE EFFECT_D_
46 1 74 PCTMOTR 02-FEB-11
Below i update the effective date(01-feb-2011
SQL> update uwrmc_mast
2 set EFFECT_D_DT = '01-apr-2011'
3 where rmc_n_id =46;
1 row updated.
But i want a result like below
SQL> select RMC_N_ID, COB_N_ID, SUBCOB_N_ID, RMC_C_CODE, EFFECT_D_DT from uwrmc_mast;
RMC_N_ID COB_N_ID SUBCOB_N_ID RMC_C_CODE EFFECT_D_ OLD_EFFE
46 1 74 PCTMOTR 01-APR-11 02-FEB-11Is this possible to do in oracle , kindly give a solution for my requirement
Regards
ArunArun wrote:
Hi Mr.David_Aldridge
Am having the doubt that's why i posted my quires in oracle forums.. just i want to know whether my requirement suit for VIRTUAL COLUMN in Table.
Regards,
ArunWell, I'm not sure exactly what your requirement is.
If you want to audit changes to the records of that table then it would be better to use Oracle's auditing facility. If this previous change date is really a required part of your actual application functionality then you might use the application itself to maintain the previous date as a column in the table, as you say, or if you need to maintain the history of changes then add a new table so you can keep track of multiple changes.
Maybe you are looking for
-
PI 7.11 sp6 Integration Builder - folder view error
Experts, We recently installed SAP NW PI 7.11 (ehp1) up to sp6. This is a new install. We did all the wizards, etc and things are basically ok. we execute SXMB_IFR, then go to "integration builder" link and login. If I change the view from "object
-
Multiplying 2 values based on an If statement in SSRS reports
I am working on a pretty complicated report, and I am unable to get the values to multiply correctly on one line. The expression is simple, if the value in textbox293 is greater then the value in textbox294 then multiply textbox293 by textbox289 els
-
Which ssd hard drive is good for the mac book pro 2011 early version?
i am looking for a ssd hard disk to boost up the speed of my mac book pro 2011 early model.any suggestion for the same user here? or i should not upgrade it? if i changed it, will my warranty be compromised? thanks for answering
-
How to schedule restart of multiple services in Windows Server?
I want to schedule a weekly restart of multiple services on a Windows Server. There are steps/sequence involved in the manual restart of these services. Step 1) Stopping services one after another in a particular sequence. Step 2) Starting all servic
-
How to create material using BAPI Methods?
hi, how to create material master dat using BAPI? could u guide me i will be waiting for reply. REGARDS ESWAR.