A table that is part of a cluster.
Hi,
reading oracle documentation ,
http://download.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_73a.htm#SQLRF01402
I see :
You cannot partition a table that is part of a cluster.
My question is :
What is a table that is part of a cluster ? What means part of a cluster ?
Many thanks
A cluster is a way of organizing the data in one or more tables on disk. The Oracle Concepts Guide has an overview of clusters
Justin
Similar Messages
-
How to come up with a magic number for any table that returns more than 32KB?
I am in a unique situation where in I am trying to retrieve values from multiple tables and publish them as XML output. The problem is based on the condition a few tables could retrieve data more than 32KB and a few less than 32KB. Less than 32KB is not an issue as XML generation is smooth. The minute it reaches greater than 32KB it generates a run time error. Just wondering if there is any way to ensure that the minute the query's results is greater than 32 kb, it should break say - if the results is 35KB, then I should break that result into 32 KB and 3kb; once done then pass this data to be published as an XML output. This is again not just for one table, but all the tables that are called in the function.
Is there any way?? I am unable to get any ideas nor have I done anything so complex from production support stand point. Would appreciate if someone can guide me on this.
The way it is, is as follows:
I have a table called ctn_pub_cntl
CREATE TABLE CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id NUMBER(18)
,table_name VARCHAR2(50)
,last_pub_tms DATE
,queue_name VARCHAR2(50)
,dest_system VARCHAR2(50)
,frequency NUMBER(6)
,status VARCHAR2(8)
,record_create_tms DATE
,create_user_id VARCHAR2(8)
,record_update_tms DATE
,update_user_id VARCHAR2(8)
,CONSTRAINT ctn_pub_cntl_id_pk PRIMARY KEY(ctn_pub_cntl_id)
Data for this is:
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_SBDVSN'
,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.TSZ601.UNP'
,'SAP'
,15
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_TRACK_SGMNT_DN'
,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN_DN'
,TO_DATE('10/2/2004 10:17:44PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.YRDPLN.INPUT'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
,TO_DATE('02/06/2015 9:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.TSZ601.UNP'
,'SAP'
,120
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FXPLA_TRACK_LCTN2_DN'
,TO_DATE('04/23/2015 11:50:00PM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.YRDPLN.INPUT'
,'SAP'
,10
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_FIXED_PLANT_ASSET'
,TO_DATE('04/23/2015 11:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,10
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_OPRLMT'
,TO_DATE('03/26/2015 7:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
INSERT INTO CTNAPP.ctn_pub_cntl
(ctn_pub_cntl_id
,table_name
,last_pub_tms
,queue_name
,dest_system
,frequency
VALUES
(CTNAPP_SQNC.nextval
,'TRKFCG_OPRLMT_SGMNT_DN'
,TO_DATE('03/28/2015 12:50:00AM','MM/DD/YYYY HH12:MI:SSPM')
,'UT.TSD.WRKORD.UNP'
,'SAP'
,30
COMMIT;
Once the above data is inserted and committed, then I created a function in a package:
CREATE OR REPLACE PACKAGE CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
IS
TYPE tNameTyp IS TABLE OF ctn_pub_cntl.table_name%TYPE INDEX BY BINARY_INTEGER;
g_tName tNameTyp;
TYPE tClobTyp IS TABLE OF CLOB INDEX BY BINARY_INTEGER;
g_tClob tClobTyp;
FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_count OUT NUMBER ) RETURN tClobTyp;
END CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH;
--Package body
CREATE OR REPLACE PACKAGE BODY CTNAPP.CTN_PUB_CNTL_EXTRACT_PUBLISH
IS
doc xmldom.DOMDocument;
main_node xmldom.DOMNode;
root_node xmldom.DOMNode;
root_elmt xmldom.DOMElement;
child_node xmldom.DOMNode;
child_elmt xmldom.DOMElement;
leaf_node xmldom.DOMNode;
elmt_value xmldom.DOMText;
tbl_node xmldom.DOMNode;
table_data XMLDOM.DOMDOCUMENTFRAGMENT;
l_ctx DBMS_XMLGEN.CTXHANDLE;
vStrSqlQuery VARCHAR2(32767);
l_clob tClobTyp;
l_xmltype XMLTYPE;
--Local Procedure to build XML header
PROCEDURE BuildCPRHeader IS
BEGIN
child_elmt := xmldom.createElement(doc, 'PUBLISH_HEADER');
child_node := xmldom.appendChild (root_node, xmldom.makeNode (child_elmt));
child_elmt := xmldom.createElement (doc, 'SOURCE_APLCTN_ID');
elmt_value := xmldom.createTextNode (doc, 'CTN');
leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
child_elmt := xmldom.createElement (doc, 'SOURCE_PRGRM_ID');
elmt_value := xmldom.createTextNode (doc, 'VALUE');
leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
child_elmt := xmldom.createElement (doc, 'SOURCE_CMPNT_ID');
elmt_value := xmldom.createTextNode (doc, 'VALUE');
leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
child_elmt := xmldom.createElement (doc, 'PUBLISH_TMS');
elmt_value := xmldom.createTextNode (doc, TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'));
leaf_node := xmldom.appendChild (child_node, xmldom.makeNode (child_elmt));
leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
END BuildCPRHeader;
--Get table data based on table name
FUNCTION GetCtnData(p_nInCtnPubCntlID IN CTN_PUB_CNTL.ctn_pub_cntl_id%TYPE,p_Count OUT NUMBER) RETURN tClobTyp IS
vTblName ctn_pub_cntl.table_name%TYPE;
vLastPubTms ctn_pub_cntl.last_pub_tms%TYPE;
BEGIN
g_vProcedureName:='GetCtnData';
g_vTableName:='CTN_PUB_CNTL';
SELECT table_name,last_pub_tms
INTO vTblName, vLastPubTms
FROM CTN_PUB_CNTL
WHERE ctn_pub_cntl_id=p_nInCtnPubCntlID;
-- Start the XML Message generation
doc := xmldom.newDOMDocument;
main_node := xmldom.makeNode(doc);
root_elmt := xmldom.createElement(doc, 'PUBLISH');
root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
--Append Table Data as Publish Header
BuildCPRHeader;
--Append Table Data as Publish Body
child_elmt := xmldom.createElement(doc, 'PUBLISH_BODY');
leaf_node := xmldom.appendChild (root_node, xmldom.makeNode(child_elmt));
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT','''YYYY:MM:DD HH24:MI:SS''');
vStrSqlQuery := 'SELECT * FROM ' || vTblName
|| ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
-- || ' AND rownum < 16'
DBMS_OUTPUT.PUT_LINE(vStrSqlQuery);
l_ctx := DBMS_XMLGEN.NEWCONTEXT(vStrSqlQuery);
DBMS_XMLGEN.SETNULLHANDLING(l_ctx, 0);
DBMS_XMLGEN.SETROWSETTAG(l_ctx, vTblName);
-- Append Table Data as XML Fragment
l_clob(1):=DBMS_XMLGEN.GETXML(l_ctx);
elmt_value := xmldom.createTextNode (doc, l_clob(1));
leaf_node := xmldom.appendChild (leaf_node, xmldom.makeNode (elmt_value));
xmldom.writeToBuffer (doc, l_clob(1));
l_clob(1):=REPLACE(l_clob(1),'<?xml version="1.0"?>', NULL);
l_clob(1):=REPLACE(l_clob(1),'<', '<');
l_clob(1):=REPLACE(l_clob(1),'>', '>');
RETURN l_clob;
DBMS_OUTPUT.put_line('Answer is' ||l_clob(1));
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.put_line('There is no data with' || SQLERRM);
g_vProcedureName:='GetCtnData';
g_vTableName:='CTN_PUB_CNTL';
g_vErrorMessage:=SQLERRM|| g_vErrorMessage;
g_nSqlCd:=SQLCODE;
ctn_log_error('ERROR',g_vErrorMessage,'SELECT',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR : ' || SQLERRM);
ctn_log_error('ERROR',g_vErrorMessage,'OTHERS',g_nSqlCd,p_nInCtnPubCntlID,g_vPackageName,g_vProcedureName,g_vTableName);
END GetCtnData;
PROCEDURE printClob (result IN OUT NOCOPY CLOB) IS
xmlstr VARCHAR2 (32767);
line VARCHAR2 (2000);
BEGIN
xmlstr := DBMS_LOB.SUBSTR (result, 32767);
LOOP
EXIT WHEN xmlstr IS NULL;
line := SUBSTR (xmlstr, 1, INSTR (xmlstr, CHR (10)) - 1);
DBMS_OUTPUT.put_line (line);
xmlstr := SUBSTR (xmlstr, INSTR (xmlstr, CHR (10)) + 1);
END LOOP;
END printClob;
END CTN_PUB_CNTL_EXTRACT_PUBLISH;
If you notice my query:
vStrSqlQuery := 'SELECT * FROM ' || vTblName
|| ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
|| ' AND rownum < 16'
The minute I comment
|| ' AND rownum < 16' ;
, it throws an error because this query returns around 600 rows and all of those rows need to be published as XML and the tragedy is that there is a C program in between as well i.e. C will call my packged functions and then will do all the processing. Once this is done will pass the results back to C program. So obviously C does not recognise CLOB and somewhere in the process I have to convert the CLOB to VARCHAR or instead of CLOB I have to use VARCHAR array as a return type. This is my challenge.
Anyone that can help me to find out the required magic number and also a brief know how, I would appreciate that. Many thanks in advance.Not sure I understand which part is failing.
Is it the C program calling your packaged function? Or does the error occur in the PL/SQL code, in which case you should be able to pinpoint where it's wrong?
A few comments :
1) Using DOM to build XML out of relational data? What for? Use SQL/XML functions.
2) Giving sample data is usually great, but it's not useful here since we can't run your code. We're missing the base tables.
3) This is wrong :
vStrSqlQuery := 'SELECT * FROM ' || vTblName || ' WHERE record_update_tms <= TO_DATE(''' || TO_CHAR(vLastPubTms, 'MM/DD/YYYY HH24:MI:SS') || ''', ''MM/DD/YYYY HH24:MI:SS'') ' ;
A bind variable should be used here for the date.
4) This is wrong :
elmt_value := xmldom.createTextNode (doc, l_clob(1));
createTextNode does not support CLOB so it will fail as soon as the CLOB you're trying to pass exceeds 32k.
Maybe that's the problem you're referring to?
5) This is most wrong :
l_clob(1):=REPLACE(l_clob(1),'<?xml version="1.0"?>', NULL);
l_clob(1):=REPLACE(l_clob(1),'<', '<');
l_clob(1):=REPLACE(l_clob(1),'>', '>');
I understand what you're trying to do but it's not the correct way.
You're trying to convert a text() node representing XML in escaped form back to XML content.
The problem is that there are other things to take care of besides just '<' and '>'.
If you want to insert an XML node into an existing document, treat that as an XML node, not as a string.
Anyway,
Anyone that can help me to find out the required magic number
That would be a bad idea. Fix what needs to be fixed.
And please clearly state which part is failing : the C program or the PL/SQL code?
I'd vote for PL/SQL, as pointed out in [4]. -
Hello
I have a dataset that was created at design time
but - after I run the app, it randomly creates a table based on The Users name
since I do not know the users name before had, the table is not part of my existing dataset
(I actually used an insert into sql nonquery to just make this table a copy of the masterUserTable)
Now - I have a binding navigator on my form, that is originally bound to masterUserTable, but my goal is to make it bound to the users table (let's say GabrielUserTable)
I thought I did so with this code:
'TODO: This line of code loads data into the 'MyLearningDBDataSet.masterUserTable' table. You can move, or remove it, as needed.
Me.MyMainDBTableAdapter.Fill(Me.MyLearningDBDataSet.masterUserTable)
Dim ThisNewVariable As String = MyUserNameIs & "UserTable"
Dim ThisNewTableName As New DataTable
Me.MyLearningDBDataSet.masterUserTable.TableName = ThisNewVariable
Me.MyMainDBTableAdapter.Fill(Me.MyLearningDBDataSet.masterUserTable)
that appeared to do the trick (but if it is incorrect please advice on the proper way to add a table made at runtime to a users existing datset)
Else where in my code I successfully execute the following NonQuery :
SqlString= "DELETE FROM " & MyUserNameIs & "UserTable" & vbCrLf &
"WHERE vState='" & txtStateInfo.Text & "';"
I check in Visual Studio 2013 that the row was deleted from the "GabrielUserTable" (Gabriel is the current value of MyUserNameIs) by using the Server Explorer and right clicking
on the table and choosing show talbe data
But the MyMainDBBindingNavigator is still showing the item I deleted.
So after searching for answers - I created a new button for testing and added the following code to test if it would work
Me.Validate()
Me.MyMainDBBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.MyLearningDBDataSet)
but the data is still shwoing after deleting it with my NonQuery
Please Help!Hi genterprise,
>> Now - I have a binding navigator on my form, that is originally bound to masterUserTable, but my goal is to make it bound to the users table (let's say GabrielUserTable)
In my option, if you want to rebind the users table to the navigator, you need to set the BindingNavigator.BindingSource. Based on your description, it seems that you did not reset the datasoure of the MyMainDBBindingNavigator. It was the original datasource
of the masterUserTable. For more details about BindingNavigator.BindingSource Property. You could refer the link below:
# BindingNavigator.BindingSource Property
https://msdn.microsoft.com/en-us/library/system.windows.forms.bindingnavigator.bindingsource%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
Best Regards,
Edward
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey. -
Tables That Show a Specific Field
Hello,
The same field is used in many transactions and tables, for example Purchase Groups and Validity Dates. Can anyone tell me if there is a transaction or table that would tell me what other transactions or tables use a particular field as part of the criteria?
Thank you in advance.
JudiPress F1 on the field you want to know..
and you will see a popup, there click the technical information
tab..
you will see table , field & data element...
Double click on Data element..
it will take you to Next screen..
there clcik the Where- used List( Three Arrows) CtrlShiftF3..
you will get the options for tables, transactions , Programs etc..
Tick what you want to see
for that particular field ...
and execute..
Thx
Raju
Edited by: Manohar Raju on Mar 12, 2008 12:53 PM -
Table that stores the application logs messages for transaction CRMD_ORDER
Hi Guru's,
I would like to know which CRM table that is used to store application logs (consist of error / warning / information messages) in transaction CRMD_ORDER? I would like to retrieve the text messages of the application log.
Thanks.Hi there,
The logs are on tables BALHDR (header) and BALDAT (detail).
In BALHDR you can fill OBJECT with 'CRM_DOCUMENT' and EXTNUMBER with the document GUID (you can obtain it in CRMD_ORDERADM_H table).
The BALDAT is a cluster table, so the information is a little 'encoded' there for direct consulting without abap code.
Alternatively, you can use FM APPL_LOG_READ_DB to read the messages that are contained in any CRM document.
Kind regards, -
How to find table that store real data for field 'BETRG' ?
1) datasource 0HR_PY_1 include field 'BETRG' in R/3 source system; extract structure HRMS_BIW_PY1 for datasource 0HR_PY_1, however structure is not used for stroing data. Question: how can we find table which store real data for the field 'BETRG'?
2) If I want to add one type call department leader type which already defined in one enhanced HR table, to calculate the total amount using field 'BETRG' according to department leader type. Should I enhance datasource 0HR_PY_1 by adding department leader type or create new view based on enhanced HR table and another table that include 'BETRG' data, also create new datasource based on this view later on?
Thanks!Hi,
Check this for Payroll Data (Transaction Data) 0HR_PY_1
http://help.sap.com/saphelp_nw70/helpdata/EN/a5/94e8288eec11d4b2fb00010220c65f/frameset.htm
The extractor for payroll results reads data from payroll cluster PCL2, not from standard tables.
thanks,
JituK -
Cookie bug using Administrative Server as part of the Cluster
All using Weblogic 6.0:
Administrative Server running on Windows 2000 Professional
Managed Server running on Windows 2000 Server
Both machines running in the same cluster.
Requests being proxied by the Windows 2000 Professional machine running IIS
Ok, now that you know our test environment, here's a little about our bug.
If we begin an http session with requests being fulfilled by the
administrative server (through the proxy), and shut down and bring the
managed server back up, everything is fine. (No big surprise.)
However, if requests are being fulfilled by the managed server and the
administrator goes down and then comes back up, we get a
"ReplicationManager: object 722399223287670702 not found" error, where the
number seems to refer to value stored in the cookie after the last OR
symbol as shown below.
When the session is created, the cookie contains the following value:
session id =
OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
84610/-1062731365/7001/7002|4648941459387506517/-1062731381/7001/7002|722399
223287670702
When the administrative server goes down, the cookie contains the following
value:
session id =
OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
84610/-1062731365/7001/7002|NONE|722399223287670702
When the administrative server comes back up, the cookie contains the
following value:
session id =
OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
84610/-1062731365/7001/7002|4563245475623454445/-1062731381/7001/7002|722399
223287670702
Its pretty obvious how the cookie id breaks down, information before the
first OR is client info specific to each client, between the first and
second OR is information regarding the first server from the cluster to
fulfill the requests. The info between the second and third is the
identification of the backup server containing the replicated version of the
session. And the last bit of information seems to be an ID referring to the
session object as stored in memory. As you can see, the value that the error
is referring to never changes. SO WHY DOES THE OBJECT GET LOST?
This is a big problem for us, as our resources are limited (as I assume
everyone else's is). Is this just a bug? If so, is there a service pack
already available? If its not a bug, it should be as resolving the bug
allows the administrative server to be part of the cluster saving everyone
the money for an extra machine and (here's the killer) the money for an
extra weblogic license to run on a administrative server separate from the
cluster (in which case it works fine, just costs a whole lot more).
Well, I hope this is clear enough. If not please ask whatever you need to
know. We are looking for any information anyone can provide.
Thank you,
Chad Griffith
Software Engineer
VisionTEK Inc.
[email protected]
To answer your question, fail over works fine, i.e. if a session is
maintained on the managed server, we can shut it down and the session is
transferred to the administrative sever.
The only problem we are having is when the session is on the MANAGED server,
and the ADMIN server goes down and back up WITHOUT any session transfer.
As for shutting down an admin server, you can bring it back up while managed
servers are running by using the -Dweblogic.management.discover=TRUE
setting.
I hope this clarifies everything.
Thanks again,
Chad
"Sioux France" <[email protected]> wrote in message
news:[email protected]...
> Is this an admin server problem though? Can you try the opposite? i.e. IS
it
> possible to connect to the Managed server for your http requests (through
> the proxy)? If so, then shut down and bring back the managed server. I'd
> expect that to go wrong in the same way? Likewise if you shutdown and
bring
> back the admin server in that configuration you would not have a problem?
> "Chad Griffith" <[email protected]> wrote in message
> news:[email protected]...
> > All using Weblogic 6.0:
> > Administrative Server running on Windows 2000 Professional
> > Managed Server running on Windows 2000 Server
> > Both machines running in the same cluster.
> > Requests being proxied by the Windows 2000 Professional machine running
> IIS
> >
> > Ok, now that you know our test environment, here's a little about our
bug.
> > If we begin an http session with requests being fulfilled by the
> > administrative server (through the proxy), and shut down and bring the
> > managed server back up, everything is fine. (No big surprise.)
> >
> > However, if requests are being fulfilled by the managed server and the
> > administrator goes down and then comes back up, we get a
> > "ReplicationManager: object 722399223287670702 not found" error, where
the
> > number seems to refer to value stored in the cookie after the last OR
> > symbol as shown below.
> >
> > When the session is created, the cookie contains the following value:
> > session id =
> > OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
> >
>
84610/-1062731365/7001/7002|4648941459387506517/-1062731381/7001/7002|722399
> > 223287670702
> >
> > When the administrative server goes down, the cookie contains the
> following
> > value:
> > session id =
> > OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
> > 84610/-1062731365/7001/7002|NONE|722399223287670702
> >
> > When the administrative server comes back up, the cookie contains the
> > following value:
> > session id =
> > OnIXh5A6DxUWgBrA2qCLIDN0Co1dewmjdV1ze1isn9Wur2CHl2k2|60563422118895
> >
>
84610/-1062731365/7001/7002|4563245475623454445/-1062731381/7001/7002|722399
> > 223287670702
> >
> > Its pretty obvious how the cookie id breaks down, information before the
> > first OR is client info specific to each client, between the first and
> > second OR is information regarding the first server from the cluster to
> > fulfill the requests. The info between the second and third is the
> > identification of the backup server containing the replicated version of
> the
> > session. And the last bit of information seems to be an ID referring to
> the
> > session object as stored in memory. As you can see, the value that the
> error
> > is referring to never changes. SO WHY DOES THE OBJECT GET LOST?
> >
> > This is a big problem for us, as our resources are limited (as I assume
> > everyone else's is). Is this just a bug? If so, is there a service pack
> > already available? If its not a bug, it should be as resolving the bug
> > allows the administrative server to be part of the cluster saving
everyone
> > the money for an extra machine and (here's the killer) the money for an
> > extra weblogic license to run on a administrative server separate from
the
> > cluster (in which case it works fine, just costs a whole lot more).
> >
> > Well, I hope this is clear enough. If not please ask whatever you need
to
> > know. We are looking for any information anyone can provide.
> >
> > Thank you,
> > Chad Griffith
> > Software Engineer
> > VisionTEK Inc.
> > [email protected]
> >
> >
>
>
-
PL/SQL to create a temp table that will be dropped after session ends
Is it possible in PL/SQL to create a temp table that will be dropped after the session ends? Please provide example if possible. I can create a global temp table in PL/SQL but I am not sure how (if possible) to have it 'drop' once the session ends.
DB: 10g
OS: Wiindoze 2003 Server
:-)As others have mentioned (but probably not clearly explained), Oracle treats temporary tables differently to SQL Server.
In SQL Server you create a temporary table and it gets dropped (automatically I assume, I dont do SQL Server) after the session finishes. This will obviously allow each session to "request" a temporary table to use, then use it, and not have to worry about cleaning up the database after the session has finished.
Oracle takes a different approach...
On the assumption that each session is likely to be creating a temporary table for the same purposes, with the same structure, Oracle let's you create a Global Temporary Table a.k.a. GTT (which you've already come across). You only have to create this table once and you leave it on the database. This then means that any code written to use that table doesn't have to be dynamic code and can be verified and checked at compile time, just like code written for any other table. The difference of a GTT from a regular table is that any data you put into that table can only be seen by that session and will not interfere with any data of other sessions and, when you either commit, or end the session (depending on the "on commit delete rows" or "on commit preserve rows" option used when creating the GTT), that data from your own session will automatically be removed and hence the table is cleaned up that way, whilst the actual table itself remains.
Some people from SQL Server backgrounds try and create and drop tables dynamically in their PL/SQL code, but this leads to problems...
SQL> ed
Wrote file afiedt.buf
1 begin
2 execute immediate 'create table my_temp (x number)';
3 insert into my_temp values (1);
4 execute immediate 'drop table my_temp';
5* end;
SQL> /
insert into my_temp values (1);
ERROR at line 3:
ORA-06550: line 3, column 15:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 3, column 3:
PL/SQL: SQL Statement ignoredi.e. the code will not compile for direct DML statements trying to use that table.
They then try and get around this issue by making their DML statements dynamic too...
SQL> ed
Wrote file afiedt.buf
1 create or replace procedure my_proc is
2 begin
3 execute immediate 'create table my_temp (x number)';
4 execute immediate 'insert into my_temp values (''A'')';
5 execute immediate 'drop table my_temp';
6* end;
SQL> /
Procedure created.... which looks great and it compiles ok... but... when they try and run it...
SQL> exec my_proc;
BEGIN my_proc; END;
ERROR at line 1:
ORA-01722: invalid number
ORA-06512: at "SCOTT.MY_PROC", line 4
ORA-06512: at line 1... oops the code has a bug in it. Our DML statement was invalid.
This is really something that would have been caught at compile time, if the statement had been a direct DML statement rather than dynamic. And thus we see the problem with people trying to write all their code as dynamic SQL... it's more likely to contain bugs that won't be detected at compile time and only come to light at run time... sometimes only under certain conditions and sometimes once it's got into a production environment. Bad Idea!!!! ;)
Far better to never create tables (or most other database objects) at run time. Just create them once as part of the database design/implementation and use them as required, allowing you to catch the most common coding errors up front before they get anywhere near a test environment or worse still, a production environment. -
Table that shows variants?
Dear GURUS
I need to know if there is a table that holds the variants which are used in reports.
Best Regards
SP> VARID
> VARIT
> VARI <- this is the table that holds variant values,
> but unfortunately they are stored in a cluster and
> hence not easy to read.
Could you please open a little bit. about the table VARI / i need to finds variant's values. how to read that table?
thanks -
I have a budget spreadsheet with a couple recurring tables. As months go by, I sometimes make changes to these tables and would like those changes to be synced across the different sheets in the spreadsheet. Is there a way to sync content across multiple pages, essentially having one true table that appears on multiple sheets?
Abdur,
In the sheet :: table :: cell that is going to receive the data, type an equals sign, then click on the cell that the data will come from and press Return.
This will require that you navigate to the origin cell by choosing the proper sheet.
Jerry -
If I wanted to include apple loops in the assets of Logic project folders that are part of a song that follows a tutorial available for download on a paid educational website would that be ok? No one would be paying for the file itself that's part of the membership. I don't want to get into any copyright problems. I understand that they are royalty free and you can include them in your music no problem but the individual loops would be in the audio folder if I saved all the assets to the project file.
Also, would it be ok to include screen shots I take myself of apple programs in my downloadable content?
Just trying to figure out exactly how I should go about it to avoid any legal issues.Hi
trainedmind wrote:
No one would be paying for the file itself that's part of the membership. I don't want to get into any copyright problems.
My gut reaction is that you may well run into © issues if you re-distribute the original AppleLoops.If your customers are paying for the training, they are also paying for the content you provide, so I feel that you would be re-selling the loops.
Given that anyone who has a copy of Logic would likely have installed all the loop content, there should be no need to distribute them with the project files. Alternatively, make your own loops.
CCT -
Is there a way to create tables that can't update rows
Hi
I have an application where security is very importante. I have tables that con only be inserted and queried, not updated or deleted. Is there a way I can tell Oracle to prohibit update and delete on that table.
Regards,
Néstor Boscán> Is there a way I can tell Oracle to prohibit update and delete on that table.
Yes. Quite easy in fact. It is called FGAC - Fine Grained Access Control.
You create a FGAC function for those tables. These simply returns 1=2 to be added to an UPDATE or DELETE statement's predicate.
Example:
SQL> -- am able to delete from emp
SQL> delete from emp;
17 rows deleted.
SQL> rollback;
Rollback complete.
SQL>
SQL> -- create policy FGAC function
SQL> create or replace function vpdbPolicy( schema varchar2, object varchar2 ) return varchar2 is
2 begin
3 return( '1=2' );
4 end;
5 /
Function created.
SQL>
SQL> -- create FGAC policy
SQL> begin
2 DBMS_RLS.add_policy(
3 object_schema => USER,
4 function_schema => USER,
5 object_name => 'emp',
6 policy_name => 'PROTECT_EMP',
7 policy_function => 'vpdbPolicy',
8 update_check => FALSE,
9 statement_types => 'UPDATE DELETE'
10 );
11 end;
12 /
PL/SQL procedure successfully completed.
SQL>
SQL> -- no longer able to delete from emp
SQL> delete from emp;
0 rows deleted.
SQL> rollback;
Rollback complete.
SQL> -
How do I create a table that breaks for new pages?
I'm running Pages 5.5.1 on OS X Yosemite 10.10.1 and am having difficulty understanding table behavior.
Scenario 1 - I create a new file and insert a table at the top of the first (blank) page. It automatically is selected for Object Placement>Move With Text. If I add rows to this table, Pages automatically adds a new page and breaks the table so that additional cells appear on the new page. All well and good. If I change the Object Placement to Stay on Page, the second page and those cells disappear.
Scenario 2 - I create a file and first add a few lines to the top of the first page. Then, I insert a table below those lines. It is also automatically selected for Object Placement>Move With Text. When I add rows, the table does not break for the second page, but the entire table jumps to the second page. If I change the Object Placement to Stay on Page, I can then slide the table back onto page one, but as in Scenario 1 the portion of the table which would continue onto page two disappears.
So, how do I create a table that I can add to a page which is not blank (as in Scenario 2) which will break automatically onto page 2 instead of jumping, and so the rows appear on page two (not disappear as I describe above)?
Thank you for your help.The inline table is supposed to break but like most things Pages 5 it is buggy and erratic in its behavior.
Use Pages '09.
Peter -
How do I programatically change the text in a listbox that is contained in a cluster?
How do I programatically change the text in a listbox that is contained in a cluster?
In the front panel, right click on the listbox object and select create>attribute node.
In the diagram click on the attribute node and select "Item Names".
Connect the desired array of string to the attribute node.
BigBen -
How can I replicate a source table that doesn't have any primary keys?
We have transactional replication setup in our workplace.
In the source database, there are some tables that do not have any primary key.
1) How can I get these tables to replicate in the current scenario?
2) Is it possible to introduce foreign elements in a replicated instance of the database?
Example, additional records in a table that don't exist in the source or additional tables in the database?1) You need to add a primary key to this table. There must be a criteria that the app uses to identify which row it wants to up date or delete. If not you might be able to add an identity column to the table and then add a primary key to it. If this is not
possible you might want to use snapshot replication or CDC to do change tracking and then something like SSIS or service broker to move the change to the destination server.
2) yes, but be careful. They should not modify the schema or the data of tables which are being replicated.
looking for a book on SQL Server 2008 Administration?
http://www.amazon.com/Microsoft-Server-2008-Management-Administration/dp/067233044X looking for a book on SQL Server 2008 Full-Text Search?
http://www.amazon.com/Pro-Full-Text-Search-Server-2008/dp/1430215941
Maybe you are looking for
-
Problem description: Slow processing, spinning beachball appears often EtreCheck version: 2.1.6 (109) Report generated January 19, 2015 at 6:15:38 PM PST Download EtreCheck from http://etresoft.com/etrecheck Click the [Support] links for help with no
-
Hi, Iu2019m new to SAP (and BW), so please bear with me. We went live with CRB and BW about four months ago. At that time we could not automate our Sales Statistics and Business Partner data extractors because of various issues. Weu2019ve since re
-
Mini bridge is not available in Photoshop cc 2014
Typically, I have a min bridge icon but after upgrading to CC2014 It is no longer available. I looked inside and out and it is not here. a forum explained to go to WINDOWS>EXTENSIONS> but that is grayed out. please help. I depend on bridge to
-
Multiple Screens with Full Screen App
Wondering if there is a way to change the behavior of the Full Screen App function in 10.7 - by default - with my 3 monitors attached - full screen effectly blanks two of the screens. Not quite as useful as it could be if for example I wanted to go f
-
The bottom of the screen of the iMac to the 2011 shooting yellow
Good afternoon / evening, I am originally French so sorry for my language if not completely understandable ! Uh, my problem is the screen of my iMac 21.5 range 2011, it is pale! Yes indeed, it tends to be yellowish gray even see! This is my 3rd iMac,