Adding column in table having millions of records
Hi,
Oracle release :11.2.0.3
Table A exists with millions of records. - has many indexes on it.
Need to add one column which exists in table B with same no of records.
Rowid is common join condition between table A and B to update this new column in A.
Please advice the fastest way to update this column.
Explain plan output for update query is :
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | UPDATE STATEMENT | | 181M| 3287M| 95T (1)|999:59:59 |
| 1 | UPDATE | A | | | | |
| 2 | PX COORDINATOR | | | | | |
| 3 | PX SEND QC (RANDOM) | :TQ10000 | 181M| 3287M| 205K (2)| 00:47:58 |
| 4 | PX BLOCK ITERATOR | | 181M| 3287M| 205K (2)| 00:47:58 |
| 5 | TABLE ACCESS FULL | A | 181M| 3287M| 205K (2)| 00:47:58 |
PLAN_TABLE_OUTPUT
|* 6 | FILTER | | | | | |
|* 7 | TABLE ACCESS BY INDEX ROWID | B | 301K| 15M| 528K (1)| 02:03:24 |
|* 8 | INDEX RANGE SCAN | SYS_C0073404 | 30M| | 31081 (1)| 00:07:16 |
Thanks in advance
create table new_A as select *.A ,column_in_B from A,B where A.row_id=B.row_id;
drop table A;
rename new_A to A;
No - that can't be right.
You need to access the ROWID of table A; not some column in table A that is named 'row_id'. And that assumes, as PaulHorth asked, that table B DOES have a column named 'row_id' that contains the ROWID values of table A.
Also you only posted the plan for the update statement: post the actual query that plan is based on.
create table emp_rowid as
select 'new_' || e.ename new_ename, e.rowid row_id from emp e
where deptno = 20
update /*+parallel (4) */ emp e
set ename = (select new_ename from emp_rowid er
where er.row_id = e.rowid)
where rowid in (select row_id from emp_rowid)
select * from table(dbms_xplan.display_cursor())
Similar Messages
-
Having Millions of Records in table how we can reduce the exicution time
We have developed report it takes time to running eighteen hours background job monthly data because having millions of records in tables and used loops also Could you please help me how can read record million wise as parrlel exicution to reduce time
Moderator message - Welcome to SCN.
Please search the forums before asking a question.
Also, Please read Please read "The Forum Rules of Engagement" before posting! HOT NEWS!! and How to post code in SCN, and some things NOT to do... and [Asking Good Questions in the Forums to get Good Answers|/people/rob.burbank/blog/2010/05/12/asking-good-questions-in-the-forums-to-get-good-answers] before posting again.
Thread locked.
Rob -
Inserting sequence value in a created column already table having some rows
i have a table emp whish has already having rows in that table
now i added one more column to that table with alter command and also i created sequence
now i want to insert the value in that newly created column with sequencename.nextval??????insert into employees values (employees_seq.nextval);
commit;
Here employees_seq is the name of the sequence.
Regards
Asif Kabir
17 (17 unresolved)
-- Mark your answer as correct/helpful
Edited by: asifkabirdba on Dec 22, 2009 3:39 PM -
Error when adding columns to table and update sync group schema
Hi,
I have an Azure SQL Database that is synced to five lokal SQL Server Express 2012 clients. Today I had to add some columns to the tables, I did this using SMMS and ALTER TABLE on the hub-database.
Then I disabled auto-sync in the Azure Portal and updated the sync schema.
The first error I got when clicking on Save-Button was that my goup is not ready for syncing. I assumed that was caused by two sync agents who were offline. So I deleted them from the group and the error was gone. (is this an generall issue that all agents
must be online to update the schema?)
But then I got the next error when clicking on Save-Button who tells me SQL Error 207, invalid column name on the new columns I've added.
Here's the error in the eventlog:
id:DbProvider_SqlSyncScopeProvisioning_Error, rId:, sId:cc009538-29a6-4980-8db6-98fe520626b6, agentId:cb734c59-3484-41ed-8002-dec8cf7e21b4,
agentInstanceId:1aa5a36e-0dfb-4ff1-841a-c298d2e77fe7, syncGroupId:9d439cdd-de14-4e4d-a799-8a7fa518f533, syncGroupMemberId:dd2d6cdf-fdb3-4ff8-8ab5-8e639c35af47, hubDbId:d5c5615a-6f55-484a-8c76-cf335989fa41, tracingId:b5f0eb23-1ade-437b-af33-a1960ebd1c23, databaseId:a9c5ba71-a7b0-4ffe-ab8d-10b6006fc282,
sqlAzureActivityId:00000000-0000-0000-0000-000000000000, e:'Type=System.Data.SqlClient.SqlException,Message=Ungültiger Spaltenname 'Kunde_Name'.
Ungültiger Spaltenname 'Rechnung_gestellt'.
Ungültiger Spaltenname 'Rechnung_bezahlt'.
Ungültiger Spaltenname 'Kunde_Name'.
Ungültiger Spaltenname 'Rechnung_gestellt'.
Ungültiger Spaltenname 'Rechnung_bezahlt'.,Source=.Net SqlClient Data Provider,StackTrace=
bei System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean
breakConnection, Action`1 wrapCloseInAction)
bei System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,
Boolean callerHasConnectionLock, Boolean asyncClose)
bei System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler,
SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
bei System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean
async, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion,
String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
bei System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
bei Microsoft.Synchronization.Data.SqlServer.SqlSyncTrackingTableHelper.UpdateTrackingTableWhereColumnsNotNullInBaseTable(SqlConnection
connection, SqlTransaction transaction, DbSyncColumnDescription[] addedColumns, DbSyncColumnDescription[] modifiedColumns, Int32 tableObjectId, SqlSyncMarkerTableHelper markerHelper)
bei Microsoft.Synchronization.Data.SqlServer.SqlSyncTableProvisioning.ReApply(SqlTransaction
trans, SqlSyncProviderAdapterConfiguration oldConfiguration)
bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApplyScope(SqlConnection
connection)
bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApplyInternal(SqlConnection
connection)
bei Microsoft.Synchronization.Data.SqlServer.SqlSyncScopeProvisioning.ReApply(),', eType:'Type=System.Data.SqlClient.SqlException',
eMessage:'Message=Ungültiger Spaltenname 'Kunde_Name'.
Ungültiger Spaltenname 'Rechnung_gestellt'.
Ungültiger Spaltenname 'Rechnung_bezahlt'.
Ungültiger Spaltenname 'Kunde_Name'.
Ungültiger Spaltenname 'Rechnung_gestellt'.
Ungültiger Spaltenname 'Rechnung_bezahlt'.' Error Code: -2146232060 - SqlError Number:207,
Message: Ungültiger Spaltenname 'Kunde_Name'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'.. SqlError
Number:207, Message: Ungültiger Spaltenname 'Kunde_Name'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_gestellt'.. SqlError Number:207, Message: Ungültiger Spaltenname 'Rechnung_bezahlt'..
, eTypeInner:, eMessageInner:
Can anyone help here?
Kind
regards,
selmiacHello,
When you alter the table on hub database, did you specify the new column allow NULLs or have a DEFAULT? The column must allow NULLs or have a DEFAULT for the user to create it in the other tables on the sync group.
Reference:Add or remove a column in a sync group
If the issue persists, you may try to delete the sync group and recreate the group.
Regards,
Fanny Liu
Fanny Liu
TechNet Community Support -
Saving of data in a table having large number of records
Hi,
i'm working in forms 6i and database 10g.
i'm having two tables, stock_head and stock_detail.
The stock_detail table is having millions of records.
The stock_detail is having 3 database triggers.
the saving of data into these tables is very slow even after disabling the triggers.
can anyone please help me regarding this matter...
How to improve the performance?
please help me...As always the same thing applies to these type of queries
- No exact version numbers are provided
- The problem description is way too vague to resolve the issue
- The requestor doesn't read documentation
- The requestor didn't use online resources, and didn't search this forum
The central question always is
What is it waiting for
So you need to run ADDM and/or AWR reports provided you are properly licensed, or statspack when you don't have a license for AWR/ADDM.
Apart from that no help is possible, as the post didn't contain a problem description other than 'It doesn't work, help'
Sybrand Bakker
Senior Oracle DBA -
Top Link Causes out of memory issue when millions of records need to update
Hello everyone,
I am using TopLink 9.0.4 in a batch process. The batch process reads from the temp table(temp table has millions of records one month worth of data which need be updated). The database being used is sqlserver 2005. Below is the snippet of code. It works for 6-7 hours and crashes after that due of out of memory:
ExpressionBuilder expressionBuilder = new ExpressionBuilder();
Statement stmt = con.createStatement();
ResultSet rs = st.executeQuery("Select * from database tablename where field= 'done'");
while(rs!=null && rs.next()){
*//where vo is the value object obtained from the rs row by row*
if (updateInfo(vo, user,expressionBuilder )){
logger.info("updated : "+ rs.getString("col_name"));
projCount++;
rs.close();
st.close();
private boolean updateInfo(ProjectVO vo, YNUser tcUser,expressionBuilder ) {
boolean updated;
updated = false;
try {
updated = true;
} catch (Exception e) {
logger.warn("update: caused exception, "
+ e.getMessage());
return updated;
Edited by: user8981696 on Jan 14, 2010 1:00 PMThanks for your reply.
Please find below the answers to you suggestions/concerns:
You seem to be using raw JDBC to select all of the records in a single result set, not sure if this may be causing a memory issue. You could try paging through the results instead.
Ans: I have modified the code to get me 1000 records each time and I am getting the ResultSet by using PrepartedStatement instead of regular Statement object.
What type of caching are you using?
Ans: No caching is being used. If you have some thoughts on caching please suggest or put some sample code. Again there is no AppServer is being used, its just a regular java process(Batch process) so I dont know how to do caching in a simple java process.
You may also wish to try the latest 9.0.4 patch release, or try the 10.1.3 version, or the latest EclipseLink 2.0 release.
Ans: Where can I find the latest patch release 9.0.4?
Any help/suggestion is really appreciated! -
How to update a column which has 35 millions of rows?
Hi everyone
need help
I am updating a column which has 35 millions of records. When i start update, it is taking like > 60 mins and its not stoping (finishing).
I need to null that column A, and update that column A with the other column B values.
Thanks
kumarThree common causes for big updates that are slow:
blocking. You can check whether the UPDATE is waiting on another connection to release locks using sp_who2
improperly sized log file. A big update may use of a lot of log space. If you log file is too small, and you have auto-grow enabled (which is the default setting), it will grow whenever needed. But this takes a lot of extra time. You can easily see this
when you view the file size of the log file
if the column you are updating is indexed, the engine may also you tempdb a lot, so tempdb may also grow a lot, which would take a lot of additional time. This is also easy to check by inspecting tempdb's file size
Gert-Jan -
I am designing a table, for which I am loading the data into my table from different tables by giving joins. But I have Status column, for which I have about 16 different statuses from different tables, now for each case I have a condition, if it satisfies
then the particular status will show in status column, in that way I need to write the query as 16 different cases.
Now, my question is what is the best way to write these cases for the to satisfy all the conditions and also get the data quickly to the table. As the data we are getting is mostly from big tables about 7 million records. And if we give the logic as case
it will scan for each case and about 16 times it will scan the table, How can I do this faster? Can anyone help me outHere is the code I have written to get the data from temp tables which are taking records from 7 millions table with filtering records of year 2013. This is taking more than an hour to run. Iam posting the part of code which is running slow, mainly
the part of Status column.
SELECT
z.SYSTEMNAME
--,Case when ZXC.[Subsystem Name] <> 'NULL' Then zxc.[SubSystem Name]
--else NULL
--End AS SubSystemName
, CASE
WHEN z.TAX_ID IN
(SELECT DISTINCT zxc.TIN
FROM .dbo.SQS_Provider_Tracking zxc
WHERE zxc.[SubSystem Name] <> 'NULL'
THEN
(SELECT DISTINCT [Subsystem Name]
FROM .dbo.SQS_Provider_Tracking zxc
WHERE z.TAX_ID = zxc.TIN)
End As SubSYSTEMNAME
,z.PROVIDERNAME
,z.STATECODE
,z.TAX_ID
,z.SRC_PAR_CD
,SUM(z.SEQUEST_AMT) Actual_Sequestered_Amt
, CASE
WHEN z.SRC_PAR_CD IN ('E','O','S','W')
THEN 'Nonpar Waiver'
-- --Is Puerto Rico of Lifesynch
WHEN z.TAX_ID IN
(SELECT DISTINCT a.TAX_ID
FROM .dbo.SQS_NonPar_PR_LS_TINs a
WHERE a.Bucket <> 'Nonpar'
THEN
(SELECT DISTINCT a.Bucket
FROM .dbo.SQS_NonPar_PR_LS_TINs a
WHERE a.TAX_ID = z.TAX_ID)
--**Amendment Mailed**
WHEN z.TAX_ID IN
(SELECT DISTINCT b.PROV_TIN
FROM .dbo.SQS_Mailed_TINs_010614 b WITH (NOLOCK )
where not exists (select * from dbo.sqs_objector_TINs t where b.PROV_TIN = t.prov_tin))
and z.Hosp_Ind = 'P'
THEN
(SELECT DISTINCT b.Mailing
FROM .dbo.SQS_Mailed_TINs_010614 b
WHERE z.TAX_ID = b.PROV_TIN
-- --**Amendment Mailed Wave 3-5**
WHEN z.TAX_ID In
(SELECT DISTINCT
qz.PROV_TIN
FROM
[SQS_Mailed_TINs] qz
where qz.Mailing = 'Amendment Mailed (3rd Wave)'
and not exists (select * from dbo.sqs_objector_TINs t where qz.PROV_TIN = t.prov_tin))
and z.Hosp_Ind = 'P'
THEN 'Amendment Mailed (3rd Wave)'
WHEN z.TAX_ID IN
(SELECT DISTINCT
qz.PROV_TIN
FROM
[SQS_Mailed_TINs] qz
where qz.Mailing = 'Amendment Mailed (4th Wave)'
and not exists (select * from dbo.sqs_objector_TINs t where qz.PROV_TIN = t.prov_tin))
and z.Hosp_Ind = 'P'
THEN 'Amendment Mailed (4th Wave)'
WHEN z.TAX_ID IN
(SELECT DISTINCT
qz.PROV_TIN
FROM
[SQS_Mailed_TINs] qz
where qz.Mailing = 'Amendment Mailed (5th Wave)'
and not exists (select * from dbo.sqs_objector_TINs t where qz.PROV_TIN = t.prov_tin))
and z.Hosp_Ind = 'P'
THEN 'Amendment Mailed (5th Wave)'
-- --**Top Objecting Systems**
WHEN z.SYSTEMNAME IN
('ADVENTIST HEALTH SYSTEM','ASCENSION HEALTH ALLIANCE','AULTMAN HEALTH FOUNDATION','BANNER HEALTH SYSTEM')
THEN 'Top Objecting Systems'
WHEN z.TAX_ID IN
(SELECT DISTINCT
h.TAX_ID
FROM
#HIHO_Records h
INNER JOIN .dbo.SQS_Provider_Tracking obj
ON h.TAX_ID = obj.TIN
AND obj.[Objector?] = 'Top Objector'
WHERE z.TAX_ID = h.TAX_ID
OR h.SMG_ID IS NOT NULL
)and z.Hosp_Ind = 'H'
THEN 'Top Objecting Systems'
-- --**Other Objecting Hospitals**
WHEN (z.TAX_ID IN
(SELECT DISTINCT
h.TAX_ID
FROM
#HIHO_Records h
INNER JOIN .dbo.SQS_Provider_Tracking obj
ON h.TAX_ID = obj.TIN
AND obj.[Objector?] = 'Objector'
WHERE z.TAX_ID = h.TAX_ID
OR h.SMG_ID IS NOT NULL
)and z.Hosp_Ind = 'H')
THEN 'Other Objecting Hospitals'
-- --**Objecting Physicians**
WHEN (z.TAX_ID IN
(SELECT DISTINCT
obj.TIN
FROM .dbo.SQS_Provider_Tracking obj
WHERE obj.[Objector?] in ('Objector','Top Objector')
and z.TAX_ID = obj.TIN
and z.Hosp_Ind = 'P')
THEN 'Objecting Physicians'
--****Rejecting Hospitals****
WHEN (z.TAX_ID IN
(SELECT DISTINCT
h.TAX_ID
FROM
#HIHO_Records h
INNER JOIN .dbo.SQS_Provider_Tracking obj
ON h.TAX_ID = obj.TIN
AND obj.[Objector?] = 'Rejector'
WHERE z.TAX_ID = h.TAX_ID
OR h.SMG_ID IS NOT NULL
)and z.Hosp_Ind = 'H')
THEN 'Rejecting Hospitals'
--****Rejecting Physciains****
WHEN
(z.TAX_ID IN
(SELECT DISTINCT
obj.TIN
FROM .dbo.SQS_Provider_Tracking obj
WHERE z.TAX_ID = obj.TIN
AND obj.[Objector?] = 'Rejector')
and z.Hosp_Ind = 'P')
THEN 'REjecting Physicians'
----**********ALL OBJECTORS SHOULD HAVE BEEN BUCKETED AT THIS POINT IN THE QUERY**********
-- --**Non-Objecting Hospitals**
WHEN z.TAX_ID IN
(SELECT DISTINCT
h.TAX_ID
FROM
#HIHO_Records h
WHERE
(z.TAX_ID = h.TAX_ID)
OR h.SMG_ID IS NOT NULL)
and z.Hosp_Ind = 'H'
THEN 'Non-Objecting Hospitals'
-- **Outstanding Contracts for Review**
WHEN z.TAX_ID IN
(SELECT DISTINCT
qz.PROV_TIN
FROM
[SQS_Mailed_TINs] qz
where qz.Mailing = 'Non-Objecting Bilateral Physicians'
AND z.TAX_ID = qz.PROV_TIN)
Then 'Non-Objecting Bilateral Physicians'
When z.TAX_ID in
(select distinct
p.TAX_ID
from dbo.SQS_CoC_Potential_Mail_List p
where p.amendmentrights <> 'Unilateral'
AND z.TAX_ID = p.TAX_ID)
THEN 'Non-Objecting Bilateral Physicians'
WHEN z.TAX_ID IN
(SELECT DISTINCT
qz.PROV_TIN
FROM
[SQS_Mailed_TINs] qz
where qz.Mailing = 'More Research Needed'
AND qz.PROV_TIN = z.TAX_ID)
THEN 'More Research Needed'
WHEN z.TAX_ID IN (SELECT DISTINCT qz.PROV_TIN FROM [SQS_Mailed_TINs] qz where qz.Mailing = 'Objector' AND qz.PROV_TIN = z.TAX_ID)
THEN 'ERROR'
else 'Market Review/Preparing to Mail'
END AS [STATUS Column]
Please suggest on this -
Update beans after adding columns to DB tables
I am trying to use JDeveloper 10G , Studio Edition Version 10.1.3.0.4.3673
I am having difficulty finding out how to update CMP Entity Beans
after adding columns to DB tables.
I have found descriptions of how to do these from four sources.
None of these methods work.
They all refer to menu options, buttons or fields that aren't in the JDevb IDE.
List of options that don't exist :
"Synchronize with Database"
"attributes"
"Add from table"
"New from Table"
"Fields Tab"What version of EJBs are you using?
The only option I know of for EJBs will be to generate the bean from the table again, or manually add the field to the EJB.
The "Synchronize with Database" operation is there for ADF Business Components but not for EJBs. -
What's the best way to delete 2.4 million of records from table?
We are having two tables one is production one and another is temp table which data we want to insert into production table. temp table having 2.5 million of records and on the other side production table is having billions of records. the thing which we want to do just simple delete already existed records from production table and then insert the remaining records from temp to production table.
Can anyone guide what's the best way to do this?
Thanks,
Waheed.Waheed Azhar wrote:
production table is live and data is appending in this table on random basis. if i go insert data from temp to prod table a pk voilation exception occured bcoz already a record is exist in prod table which we are going to insert from temp to prod
If you really just want to insert the records and don't want to update the matching ones and you're already on 10g you could use the "DML error logging" facility of the INSERT command, which would log all failed records but succeeds for the remaining ones.
You can create a suitable exception table using the DBMS_ERRLOG.CREATE_ERROR_LOG procedure and then use the "LOG ERRORS INTO" clause of the INSERT command. Note that you can't use the "direct-path" insert mode (APPEND hint) if you expect to encounter UNIQUE CONSTRAINT violations, because this can't be logged and cause the direct-path insert to fail. Since this is a "live" table you probably don't want to use the direct-path insert anyway.
See the manuals for more information: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9014.htm#BGBEIACB
Sample taken from 10g manuals:
CREATE TABLE raises (emp_id NUMBER, sal NUMBER
CONSTRAINT check_sal CHECK(sal > 8000));
EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('raises', 'errlog');
INSERT INTO raises
SELECT employee_id, salary*1.1 FROM employees
WHERE commission_pct > .2
LOG ERRORS INTO errlog ('my_bad') REJECT LIMIT 10;
SELECT ORA_ERR_MESG$, ORA_ERR_TAG$, emp_id, sal FROM errlog;
ORA_ERR_MESG$ ORA_ERR_TAG$ EMP_ID SAL
ORA-02290: check constraint my_bad 161 7700
(HR.SYS_C004266) violatedIf the number of rows in the temp table is not too large and you have a suitable index on the large table for the lookup you could also try to use a NOT EXISTS clause in the insert command:
INSERT INTO <large_table>
SELECT ...
FROM TEMP A
WHERE NOT EXISTS (
SELECT NULL
FROM <large_table> B
WHERE B.<lookup> = A.<key>
);But you need to check the execution plan, because a hash join using a full table scan on the <large_table> is probably something you want to avoid.
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Adding a cloumn in a partitioned table having pctfree 0
Hi,
I have a partitioned fact table with millions of rows and pctfree 0. Now I want to add a new column in this table (without any default value in the new column, so new column is a null). How will it affect (because of pctfree 0) the performance of old data retrieval for reports.
Thanks,
RaviAlter Table <tab_name> add <column_name> datatype;
The column will added @ last
Edited by: LPS on Jul 13, 2011 11:16 PM -
How to get the rows from a table having some column has any letter
Hi All,
suppose i have a table having columns id(number), code(varchar).
code has alphanumeric characters (ex. ABC123, 67B56 etc).
some codes are only numbers (2344, 7898 etc).
how can i get the rows which have alphabets in the code.
ex:
id code
1 AB45
2 456
3 890
4 67B7
how can i write a query such that it should give me the ids 1 and 4 (as they have alphabets in code)
thanks in advance to allThanks to one and all.
i am gettig my required output.
But i have a doubt in the operator.
If i add or remove '[]' in the operator, i am getting different ouputs.
There is a count difference in the result of the operators used.
REGEXP_LIKE(<column>,'[[:lower:]]')
REGEXP_LIKE(<column>,'[[[:lower:]]]')
REGEXP_LIKE(<column>,'[:lower:]')
Can anybody please explain what is the difference in using '[]', in the operator?
What is the correct syntax, whether i have to use two '[]'s or one '[]'.
Also, can i use REGEXP_LIKE() in oracle 8i version.( I am unable to use the operator in 8i)?
Any query to get the required output in 8i version?
Thanks in advance to all. -
SSAS Tabular - Adding Column to a table gives error "Object reference not set to instance of object"
If I make changes to a table in SSAS Tabular Visual Studio, the newly added column gives error as "Object
reference not set to instance of object"Hi VikasJain13,
According to your description, you get the "Object reference not set to instance of object" error when adding columns in Tabular. Right?
Generally, it throws this error when the internal code is accessing the property of an empty object. As you mentioned it happens when you make changes on a table, mostly it means that table is already a empty object. Please re-process your tabular to see
if this table is still existing.
If you have any question, please feel free to ask.
Simon Hou
TechNet Community Support -
Need help for SQL SELECT query to fetch XML records from Oracle tables having CLOB field
Hello,
I have a scenario wherein i need to fetch records from several oracle tables having CLOB fields(which is holding XML) and then merge them logically to form a hierarchy XML. All these tables are related with PK-FK relationship. This XML hierarchy is having 'OP' as top-most root node and ‘DE’ as it’s bottom-most node with One-To-Many relationship. Hence, Each OP can have multiple GM, Each GM can have multiple DM and so on.
Table structures are mentioned below:
OP:
Name Null Type
OP_NBR NOT NULL NUMBER(4) (Primary Key)
OP_DESC VARCHAR2(50)
OP_PAYLOD_XML CLOB
GM:
Name Null Type
GM_NBR NOT NULL NUMBER(4) (Primary Key)
GM_DESC VARCHAR2(40)
OP_NBR NOT NULL NUMBER(4) (Foreign Key)
GM_PAYLOD_XML CLOB
DM:
Name Null Type
DM_NBR NOT NULL NUMBER(4) (Primary Key)
DM_DESC VARCHAR2(40)
GM_NBR NOT NULL NUMBER(4) (Foreign Key)
DM_PAYLOD_XML CLOB
DE:
Name Null Type
DE_NBR NOT NULL NUMBER(4) (Primary Key)
DE_DESC NOT NULL VARCHAR2(40)
DM_NBR NOT NULL NUMBER(4) (Foreign Key)
DE_PAYLOD_XML CLOB
+++++++++++++++++++++++++++++++++++++++++++++++++++++
SELECT
j.op_nbr||'||'||j.op_desc||'||'||j.op_paylod_xml AS op_paylod_xml,
i.gm_nbr||'||'||i.gm_desc||'||'||i.gm_paylod_xml AS gm_paylod_xml,
h.dm_nbr||'||'||h.dm_desc||'||'||h.dm_paylod_xml AS dm_paylod_xml,
g.de_nbr||'||'||g.de_desc||'||'||g.de_paylod_xml AS de_paylod_xml,
FROM
DE g, DM h, GM i, OP j
WHERE
h.dm_nbr = g.dm_nbr(+) and
i.gm_nbr = h.gm_nbr(+) and
j.op_nbr = i.op_nbr(+)
+++++++++++++++++++++++++++++++++++++++++++++++++++++
I am using above SQL select statement for fetching the XML records and this gives me all related xmls for each entity in a single record(OP, GM, DM. DE). Output of this SQL query is as below:
Current O/P:
<resultSet>
<Record1>
<OP_PAYLOD_XML1>
<GM_PAYLOD_XML1>
<DM_PAYLOD_XML1>
<DE_PAYLOD_XML1>
</Record1>
<Record2>
<OP_PAYLOD_XML2>
<GM_PAYLOD_XML2>
<DM_PAYLOD_XML2>
<DE_PAYLOD_XML2>
</Record2>
<RecordN>
<OP_PAYLOD_XMLN>
<GM_PAYLOD_XMLN>
<DM_PAYLOD_XMLN>
<DE_PAYLOD_XMLN>
</RecordN>
</resultSet>
Now i want to change my SQL query so that i get following output structure:
<resultSet>
<Record>
<OP_PAYLOD_XML1>
<GM_PAYLOD_XML1>
<GM_PAYLOD_XML2> .......
<GM_PAYLOD_XMLN>
<DM_PAYLOD_XML1>
<DM_PAYLOD_XML2> .......
<DM_PAYLOD_XMLN>
<DE_PAYLOD_XML1>
<DE_PAYLOD_XML2> .......
<DE_PAYLOD_XMLN>
</Record>
<Record>
<OP_PAYLOD_XML2>
<GM_PAYLOD_XML1'>
<GM_PAYLOD_XML2'> .......
<GM_PAYLOD_XMLN'>
<DM_PAYLOD_XML1'>
<DM_PAYLOD_XML2'> .......
<DM_PAYLOD_XMLN'>
<DE_PAYLOD_XML1'>
<DE_PAYLOD_XML2'> .......
<DE_PAYLOD_XMLN'>
</Record>
<resultSet>
Appreciate your help in this regard!Hi,
A few questions :
How's your first query supposed to give you an XML output like you show ?
Is there something you're not telling us?
What's the content of, for example, <OP_PAYLOD_XML1> ?
I don't think it's a good idea to embed the node level in the tag name, it would make much sense to expose that as an attribute.
What's the db version BTW? -
Adding a new column in table control of MIGO
Hello,
I want to add a column in the itemlist table control (screen 200) of MIGO to show the batch's case qty. I used an example in BAdI MB_MIGO_BADI to add a new header tabstrip but the itemlist table is still pointing to MIGO's table control screen 200 ( used in subscreen SUB_ITEMLIST ). I want to show my table control which has the added column instead.
Does anyone have any ideas how to do this ?
Thanks.
TTranHi....
1. Goto that screen layout and make it change mode.
2. Follow the menu path -> goto-> secondary window-> dictionary/ program fields
3. select the reuired field
4. drag that into your table control , cretes new column
5. Also capture icon in the left side i.e. T for text make that in header area of new field.
6. Double click on this , give some name.
7. Save check activate
Thanks,
Naveen.I
Maybe you are looking for
-
OAM 11g Webgate 10g customized SSO logout page
As stated in the title, I am using OAM 11g and Webgate 10g. I am trying to create a customized SSO logout page but am confused on a few parts. First off, in http://docs.oracle.com/cd/E17904_01/doc.1111/e15478/logout.htm#CHDHFGJC , it states the follo
-
Adobe Story not compatible with Google Chrome. Why?
Google Chrome is my preferred web browser, but, alas, I realized that Adobe Story won't open in Chrome. So I'm now having to use two different browsers (Firefox and Chrome), one for general surfing the web and another just to use Story. Is there a sp
-
Cannot open old DV files Created in older versions of PP
I started a project on one machine using CS3. I captured all of the footage using CS3. The footage was regular DV footage captured direct from a DV camcorder, no special codecs or anything. Three are not even any effects of any kind on any clip. its
-
Manual clearing f-03/f-32/f-44
Dear all, What is the purpose of manual clearing f-03/f-32/f-44? Please explain me with an example. I will award maximum points. Thanks in advance, Regards, Ar
-
Hi guys, We got a standard SRM MDM catalog implementation with OCI configuration handling all the item mapping. I run into issues when I flag an item as a "Service Item" in MDM by using the default provided flag MDMSRM_SERVICE_ITEM. This flag, when s