When to filter on table
I have a table that contains a XML field.
To make things easier, a view is created with extracted XML fields.
This is deemed to be an expensive operation.
A bunch of table is then joined with the view on a filter condition.
My question is:
Does every XML row gets extracted when doing the join?
In other word, should put the filter condition on the view first.
create view XML as
select
id,extractvalue(xml,'/COMPONENT/START_DATE/DATE') startdate from trans
select * from XML x join product p on x.id = p.id
Look at this test:
SQL> select * from trans;
ID XML
1
<COMPONENT>
<START_DATE>
<DATE>2009-12-31</DATE>
</START_DATE>
</COMPONENT>
2
<COMPONENT>
<START_DATE>
<DATE>2010-12-31</DATE>
</START_DATE>
</COMPONENT>
3
<COMPONENT>
<START_DATE>
<DATE>2011-12-31</DATE>
</START_DATE>
</COMPONENT>
SQL> create view XML as
2 select
3 id,extractvalue(xml,'/COMPONENT/START_DATE/DATE') startdate from trans
4 ;
View created.
SQL> select * from xml;
ID STARTDATE
1 2009-12-31
2 2010-12-31
3 2011-12-31
SQL> create index trans_ind on trans(id);
Index created.
SQL> set autot on exp
SQL> select * from xml
2 where id=2;
ID STARTDATE
2 2010-12-31
Execution Plan
Plan hash value: 128389523
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2015 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| TRANS | 1 | 2015 | 2 (0)| 00:00:01 |
|* 2 | INDEX RANGE SCAN | TRANS_IND | 1 | | 1 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("ID"=2)
Note
- dynamic sampling used for this statement
SQL> create table product (id number);
Table created.
SQL> insert into product values (2);
1 row created.
SQL> select * from XML x join product p on x.id = p.id;
ID STARTDATE ID
2 2010-12-31 2
Execution Plan
Plan hash value: 3807437055
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 2028 | 4 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| TRANS | 1 | 2015 | 1 (0)| 00:00:01 |
| 2 | NESTED LOOPS | | 1 | 2028 | 4 (0)| 00:00:01 |
| 3 | TABLE ACCESS FULL | PRODUCT | 1 | 13 | 3 (0)| 00:00:01 |
|* 4 | INDEX RANGE SCAN | TRANS_IND | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
4 - access("ID"="P"."ID")
Note
- dynamic sampling used for this statementAs you can see in the last execution plan, the query has been rewrote by the optimizer and it has fist of all selected the row to return (id=2) from the index and then is gone to read data from the TRANS table.
So the extracvalue function has been evaluated only on one row.
Max
[My Italian Oracle blog|http://oracleitalia.wordpress.com/2010/01/17/supporto-di-xml-schema-in-oracle-xmldb/]
Edited by: Massimo Ruocchio on Jan 18, 2010 5:44 PM
Adjusted layout
Similar Messages
-
How can I filter a table from Data Control without enter query
I have a table from a web service data control based on WSDL.
I want to filter the table without input query at filter text box. Without filter text box, each would filter the table with a hardcoded query internally.
For example, when user click A menu button then it filters the table where type = '1' and B menu button filters the table by type='2' and C menu button filters the table by type=' ' .
How can I filter the table without enter query?
Could anyone point me to a solution please.
Thanks.
jdev 11.1.5
Edited by: 893364 on Oct 26, 2011 12:15 PM
Edited by: 893364 on Oct 26, 2011 12:21 PMHi,
when you created the table, did you try selecting the "filter" option. Select the table and go to the Property Inspctor. In the tool bar of the Property Inspector there is an icon to change the configuration. Its adding filter filter fields for the user to search in.
Option 2: The data of the Web Service actually is held in the iterators. If you wanted to filter the WebService query, I would not use the WS DC but a JAX-WS proxy in a POJO to fetch the WS Data. Then have the Data Control created from the POJO. You could have a method exposed on the POJO that allows you to filter the internally held data
Frank -
Filter from table head, within Region clears input
Please help. I can't seem to figure out why the form element
clears when a filter is applied. It would be so easy if I could
apply the same region on both a <thead> tag for the sortable
column header, then skip the row with the text fields, and then
apply the same region to the <tbody> tag. But, one can't
apply a region to a THEAD or TBODY tag. Ugh! Is there a workaround
to this?? Here is my code for the table...
<div spry:region="pvSearchResults">
<table id="SPContentTbl">
<tr id="SPHeaderRow">
<th spry:sort="myID">ID</th>
<th spry:sort="myName">Name</th>
<th spry:sort="myRegion">Region</th>
</tr>
<tr id="SPHeaderRow">
<th> </th>
<th><input name="ffName" id="ffName"
onkeyup="StartFiltering(this.id,'myName');" /></th>
<th><input name="ffRegion" id="ffRegion"
onkeyup="StartFiltering(this.id,'myRegion');" /></th>
</tr>
<tr spry:repeat="pvSearchResults" spry:odd="roweven">
<td>{ID}</td>
<td>{Name}</td>
<td>{Region}</td>
</tr>
</table>
</div>
Of course, this would work, I think...
<div>
<table id="SPContentTbl">
<thead spry:region="pvSearchResults">
<tr id="SPHeaderRow">
<th spry:sort="myID">ID</th>
<th spry:sort="myName">Name</th>
<th spry:sort="myRegion">Region</th>
</tr>
</thead>
<tr id="SPHeaderRow">
<th> </th>
<th><input name="ffName" id="ffName"
onkeyup="StartFiltering(this.id,'myName');" /></th>
<th><input name="ffRegion" id="ffRegion"
onkeyup="StartFiltering(this.id,'myRegion');" /></th>
</tr>
<tbody spry:region="pvSearchResults">
<tr spry:repeat="pvSearchResults" spry:odd="roweven">
<td>{ID}</td>
<td>{Name}</td>
<td>{Region}</td>
</tr>
</tbody>
</table>
</div>
... but again, no regions on THEAD or TBODY tags. It does, in
fact, filter just fine, but only the first keystroke and then the
dataset reloads and clears the form element. I would love for the
text entered into the filter to persist so that a user could
continue to type and retype, etc.
Please help. Thank you in advance.This solution is excellent!! The only outstanding issue is
that the input field loses focus and the user will have to reclick
in the form field. I tried to add the line,
document.getElementById(mf).focus();
to the funtion, where mf is the id of the form field, but it
did not work. Here is the full code, any suggestions?
function StartFiltering(mf,myRow){
var searchTxt = document.getElementById(mf).value;
if (!searchTxt){
dsSearchResults.filter(null);
return;
} else {
var regExpStr = searchTxt;
var regExp = new RegExp(regExpStr, "i");
var filterIt = function(ds, row, rowNumber){
var str = row[myRow];
if (str && str.search(regExp) != -1)
return row;
return null;
dsSearchResults.filter(filterIt);
var obsChange = new Object;
obsChange.onDataChanged = function(notifier, data){
document.getElementById(mf).value = searchTxt;
document.getElementById(mf).focus();
pvSearchResults.addObserver(obsChange); -
Filter one table based on user selection
Hi all ,
I am creating simple employee data application in VC. It consists of roadmap. On first step user searches for employee by giving first name , last name then he searches for employee and all the data related to employee's is fetched out at one shot through BAPI_EMPLOYEE_GETDATA. Now after step one no of employee comes.
When I select one record I want that for the selected rows employee's personal data should be fetched out from another table (which is populated during first BAPI call). so I want to pass the selected key value and filter that table based on passed value to table and filter the table .
Kindly give a solution as to implement filter on a table without making another BAPI call .
Thanks in advance
AbhayHi Abhay,
There's a trick to get a 'dynamic' filter (i.e. a filter that filters on a value that can change) out of the normal static filters:
Just click on the output of your data source, then 'configure' and on the '+' - sign in the lower right corner. Add a boolean field called 'condition', for example. Then, you write the condition that filters out the row(s) that you need. In the filter that comes next in the dataflow you just filter on this 'condition' - field being true.
Hope that helps,
Sincerely,
Florian -
Hello everybody
I have a Geography dimension (Country -> State -> City) and 2 related Fact Tables: "Revenues" (with measure Revenue) and "Revenue Goal" (with measure Revenue Goal) and created a dummy measure into the Revenue Fact table
(in the dsv) to calculate the Revenue not planed (by city) using Scope.
The calculated measure "NotPlannedRevenue" is defined using a Dummy measure on the Revenue FacTable with null like default value, later using Scope I have calculated the values in order to get correctly Totals Values over the a Geography hierarchy
which is working properly. The MDX script for the measure is
SCOPE([Measures].[NotPlannedRevenue]);
SCOPE ([Geography].[GeoHier].[City].Members);
THIS=iif([Measures].[Revenue Goal]=0 , [Measures].[Revenue] ,0 );
END SCOPE;
SCOPE( [Geography].City.[All]);
This =sum( Descendants([Geography].[GeoHier].CurrentMember,,LEAVES),[Measures].[NotPlannedRevenue]);
END SCOPE;
SCOPE( [Geography].State.[All]);
This =sum( Descendants([Geography].[GeoHier].CurrentMember,,LEAVES),[Measures].[NotPlannedRevenue]);
END SCOPE;
END SCOPE;
When I check the data, I get "Totals" well calculated.
The issue is when I filter Cities from the Geography dimension, the total values are not being calculated using only the selected cities. I have problems in the totals by City, State, Country.
The total for the State "Karnatak" must by "0" and the grand total must be "10".
Please someone could help me to solve the way which I must write this MDX or maybe I have to use another strategy.
Thanks in advanced.
Gelder de la OssaYou shouldn't need the second and third SCOPE statements (on the All members of City and Country) if the first one has been configured correctly - what happens if you remove them?
Chris
Check out my MS BI blog I also do
SSAS, PowerPivot, MDX and DAX consultancy
and run public SQL Server and BI training courses in the UK -
Best practice when FACT and DIMENSION table are the same
Hi,
In my physical model I have some tables that are both fact and dimension table, i.e. in the BMM they are of course separated into Fact and Dim source (2 different units) and it works fine. But I can see that there will be trouble when having more fact tables and I e.g. have a Period dimension pointing to all the different fact tables (different sources).
Seems like the best solution to this is to have an alias of the fact/transaction table and have 2 "copies" of the transaction table (one for fact and one for dimension table) in the physical layer. Only bad thing is that there will then allways be 2 lookups in the same table when fetching data from the dimension and the fact table.
This is not built on a datawarehouse - so the architecture is thereby more complex. Hope this was understandable (trying to make a short story of it).
Any best practice on this? Or other suggestions.Id recommend creation of a view in the database. if its an oracle DB, materialised views would be a huge performance benefit. you just need to make sure that the MVs are updated when the source is updated.
-Domnic -
Problem encountered when join two remote tables in a materialized view
I'm using oracle 9.2.0.6
1> I have two tables:
CREATE TABLE TEST
A VARCHAR2(100 BYTE),
C DATE
CREATE TABLE TEST1
A VARCHAR2(100 BYTE),
B TIMESTAMP
2>. I defined a prebuild table:
CREATE TABLE MV_TEST1
ID1 ROWID,
A VARCHAR2(100 BYTE),
ID2 ROWID,
B TIMESTAMP(6),
C DATE
3> I created mview logs:
CREATE MATERIALIZED VIEW LOG ON PSI_TEST.TEST
WITH ROWID
INCLUDING NEW VALUES;
CREATE MATERIALIZED VIEW LOG ON PSI_TEST.TEST1
WITH ROWID
INCLUDING NEW VALUES;
4> when I create mview:
CREATE MATERIALIZED VIEW PSI_TEST.MV_TEST1
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS
select
test.rowid id1,
test.a,
test1.rowid id2,
test1.b,
cast(null as date) c
from test , test1
where test.a = test1.a(+);
It is created successfully.
5> problem:
when I use remote tables to do the same thing, say test and test1 are in another instance and are connected by a dbLink, I couldn't create the mview successfully:
CREATE MATERIALIZED VIEW PSI_TEST.MV_TEST1
ON PREBUILT TABLE WITH REDUCED PRECISION
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
AS
select
a.rowid id1,
a.a,
b.rowid id2,
b.b,
cast(null as date) c
from test@dbl a, test1@dbl b
where a.a = b.a(+);
when run above statement, I got:
ORA-12015: cannot create a fast refresh materialized view from a complex query
Any ideas? Or joining two table through a dblink for a mview is not allowed at all?
Thanks in advance.No one has a clue?
Message was edited by:
lzhwxy -
Access 2013 crashed when I export a table from the access
Hi!
Access 2013 always crashed when I export a table from the access to the Database Symfoware.
1、The conditions of the Access 2013 crashed are the follows.
1)Create a table in the Access 2013.
2)Using the ODBC driver of the Database Symfoware to export the table from the access to the Database Symfoware.
2、The Environments are the follows.
1)Access 2013 X64(Version:15.0.4420.1017)
2)Win2008R2 X64
3)Symfoware V11.1 X64
3、The Application log from the Win2008R2 are follows.
ログの名前: Application
ソース: Application Error
日付: 2014/04/18 16:21:06
イベント ID: 1000
タスクのカテゴリ: (100)
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: WIN-29UTU2AIK6J
説明:
障害が発生しているアプリケーション名: MSACCESS.EXE、バージョン: 15.0.4420.1017、タイム スタンプ: 0x50674523
障害が発生しているモジュール名: ACECORE.DLL、バージョン: 15.0.4420.1017、タイム スタンプ: 0x506742b7
例外コード: 0xc0000005
障害オフセット: 0x0000000000171f36
障害が発生しているプロセス ID: 0xb6c
障害が発生しているアプリケーションの開始時刻: 0x01cf5ad638668c5b
障害が発生しているアプリケーション パス: C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE
障害が発生しているモジュール パス: C:\Program Files\Common Files\Microsoft Shared\OFFICE15\ACECORE.DLL
レポート ID: 00e87957-c6ca-11e3-ad2c-0050568d2ced
イベント XML:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-04-18T07:21:06.000000000Z" />
<EventRecordID>3442</EventRecordID>
<Channel>Application</Channel>
<Computer>WIN-29UTU2AIK6J</Computer>
<Security />
</System>
<EventData>
<Data>MSACCESS.EXE</Data>
<Data>15.0.4420.1017</Data>
<Data>50674523</Data>
<Data>ACECORE.DLL</Data>
<Data>15.0.4420.1017</Data>
<Data>506742b7</Data>
<Data>c0000005</Data>
<Data>0000000000171f36</Data>
<Data>b6c</Data>
<Data>01cf5ad638668c5b</Data>
<Data>C:\Program Files\Microsoft Office\Office15\MSACCESS.EXE</Data>
<Data>C:\Program Files\Common Files\Microsoft Shared\OFFICE15\ACECORE.DLL</Data>
<Data>00e87957-c6ca-11e3-ad2c-0050568d2ced</Data>
</EventData>
</Event>
4、When the access crashed,I got the dump file .Then I use the Windbg got some information from the dump files.
The detailes are follows.
FAULTING_IP:
+58872faf03d6dd84
00000000`00000000 ?? ???
EXCEPTION_RECORD: 00000000001723c0 -- (.exr 0x1723c0)
ExceptionAddress: 000007fee3951f36 (ACECORE+0x0000000000171f36)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 0000000000000000
Parameter[1]: 0000000000000000
Attempt to read from address 0000000000000000
FAULTING_THREAD: 00000000000010b8
DEFAULT_BUCKET_ID: WRONG_SYMBOLS
PROCESS_NAME: MSACCESS.EXE
ADDITIONAL_DEBUG_TEXT:
Use '!findthebuild' command to search for the target build information.
If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols.
MODULE_NAME: ACECORE
FAULTING_MODULE: 0000000076eb0000 ntdll
DEBUG_FLR_IMAGE_TIMESTAMP: 506742b7
ERROR_CODE: (NTSTATUS) 0x80000003 - {
EXCEPTION_CODE: (NTSTATUS) 0x80000003 (2147483651) - {
MOD_LIST: <ANALYSIS/>
CONTEXT: 0000000000171ed0 -- (.cxr 0x171ed0)
rax=0000000001be3598 rbx=0000000000000000 rcx=01cf5d1b0f402a5c
rdx=0000000009cfad30 rsi=0000000006688ef0 rdi=0000000001be35d0
rip=000007fee3951f36 rsp=0000000000172490 rbp=00000000001727a0
r8=0000000009b409d0 r9=0000000006688ef0 r10=0000000000000000
r11=0000000000000246 r12=0000000000000000 r13=0000000001be19f0
r14=0000000009cfad30 r15=0000000000000000
iopl=0 nv up ei pl nz na po nc
cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010206
ACECORE+0x171f36:
000007fe`e3951f36 4d3927 cmp qword ptr [r15],r12 ds:00000000`00000000=????????????????
Resetting default scope
PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS
BUGCHECK_STR: APPLICATION_FAULT_WRONG_SYMBOLS
LAST_CONTROL_TRANSFER: from 000007fee395c095 to 000007fee3951f36
STACK_TEXT:
00000000`00172490 000007fe`e395c095 : ffffffff`ffffffff 00000000`00000000 00000000`01bddaa2 ffffffff`ffffffff : ACECORE+0x171f36
00000000`001727b0 000007fe`e388f8eb : 000007fe`e399dc10 000007fe`e399dc30 000007fe`e399dc50 00000000`000000f9 : ACECORE+0x17c095
00000000`00172b50 000007fe`e388f590 : 00000000`06688ef0 00000000`00000004 00000000`000000f9 00000000`00000000 : ACECORE+0xaf8eb
00000000`00172ba0 000007fe`e388f406 : 00000000`00000004 00000000`000000f9 00000000`11cb1130 00000000`000000f9 : ACECORE+0xaf590
00000000`00172c30 000007fe`e391aee7 : 00000000`00000000 00000000`00173198 00000000`06688ef0 00000000`11cb0998 : ACECORE+0xaf406
00000000`00172c70 000007fe`e3933a72 : 00000000`00400100 00000000`00000002 00000000`00000001 00000000`06688ef0 : ACECORE+0x13aee7
00000000`00172e50 000007fe`e384e5b1 : 00000000`00000000 00000000`11cb0020 00000000`06688ef0 00000000`00000001 : ACECORE+0x153a72
00000000`00172e90 000007fe`e38358d1 : 00000000`000007ff 00000000`06688ef0 00000000`01bd99f0 00000000`00000000 : ACECORE+0x6e5b1
00000000`00173280 000007fe`e38718eb : 00000000`000007ff 00000000`06688ef0 00000000`11cb0000 00000000`00000000 : ACECORE+0x558d1
00000000`00173340 00000001`3f3b0cd2 : 00000000`0a0945c0 00000000`000000fe 00000000`000007ff 00000000`00000000 : ACECORE+0x918eb
00000000`00173430 00000001`3f3b0b9b : 00000000`00173730 00000000`001741e0 00000000`065e5b00 00000000`00000100 : MSACCESS!CreateIExprSrvObj+0x16af32
00000000`00173630 00000001`3f3afcea : 00000000`00173730 00000000`00000000 00000000`00000000 00000000`065e5b00 : MSACCESS!CreateIExprSrvObj+0x16adfb
00000000`001736a0 00000001`3f983140 : 00000000`00174401 00000000`0a3235e0 00000000`0a319aa0 00000000`00179fc8 : MSACCESS!CreateIExprSrvObj+0x169f4a
00000000`00174290 00000001`3f3aabeb : 00000000`00000000 00000000`00000000 00000000`00179f38 00000000`00000000 : MSACCESS!FUniqueIndexTableFieldEx+0x26ab4
00000000`00174530 00000001`3f3a9670 : 00000000`001778e0 00000000`00179f38 00000000`00000031 00000000`00000000 : MSACCESS!CreateIExprSrvObj+0x164e4b
00000000`00177870 00000001`3f3a8c1b : 00000000`00000010 00000000`108c5990 003d0044`00570050 00000000`74ac3f69 : MSACCESS!CreateIExprSrvObj+0x1638d0
00000000`001779d0 00000001`3f5450df : 00000000`0a0945c0 00000000`0000009c 00000000`0a0945c0 00000000`00000000 : MSACCESS!CreateIExprSrvObj+0x162e7b
00000000`00179e30 00000001`3f64e915 : 00000000`43ed8000 00000000`00000000 00000000`3f800000 00000000`00000000 : MSACCESS!FillADT+0x5830b
00000000`0017c450 00000001`3f33b172 : 00000000`00000000 00000000`0006075e 00000000`0017e370 00000000`00000000 : MSACCESS!IdsComboFillOfActidIarg+0xaddf1
00000000`0017d730 00000001`3f33a9ef : 00000000`0017e0a0 00000000`00000b86 00000000`00000000 00000000`0fea0000 : MSACCESS!CreateIExprSrvObj+0xf53d2
00000000`0017d790 00000001`3f33a20c : 00000000`06620400 00000000`00000000 00000000`00000001 00000000`0017e420 : MSACCESS!CreateIExprSrvObj+0xf4c4f
00000000`0017e400 00000001`3f6019cd : 0071023b`007a000a 00000000`00374a30 00000000`00000005 00000000`0000000c : MSACCESS!CreateIExprSrvObj+0xf446c
00000000`0017e850 00000000`06706fd5 : e2504700`aa00ee81 00005d1b`0f2363ea 00000000`0017e9e0 00000001`3f200000 : MSACCESS!IdsComboFillOfActidIarg+0x60ea9
00000000`0017e8f0 00000000`0a30c378 : 00000000`00000000 00000000`00000008 00000000`067069ac 00000000`00000000 : 0x6706fd5
00000000`0017e960 00000000`00000000 : 00000000`00000008 00000000`067069ac 00000000`00000000 00000000`00000008 : 0xa30c378
FOLLOWUP_IP:
ACECORE+171f36
000007fe`e3951f36 4d3927 cmp qword ptr [r15],r12
SYMBOL_STACK_INDEX: 0
SYMBOL_NAME: ACECORE+171f36
FOLLOWUP_NAME: MachineOwner
IMAGE_NAME: ACECORE.DLL
STACK_COMMAND: .cxr 0x171ed0 ; kb
BUCKET_ID: WRONG_SYMBOLS
FAILURE_BUCKET_ID: WRONG_SYMBOLS_80000003_ACECORE.DLL!Unknown
WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/MSACCESS_EXE/15_0_4420_1017/50674523/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1
Followup: MachineOwner
5、Where the access crashed I used the ODBC trace to get the trace log of the ODBC API.
The ODBC API called by Access before it crashed are the follows.
I also ansysised the log,and I did not find any Abnormal.
Test 1174-10f0
EXIT SQLGetData with return code 0 (SQL_SUCCESS)
HSTMT 0x0000000009F7C490
UWORD
6
SWORD
-8 <SQL_C_WCHAR>
PTR 0x00000000002C1F20 [
12] "LENGTH"
SQLLEN 62
SQLLEN * 0x00000000002C1E38 (12)
Test 1174-10f0
ENTER SQLGetData
HSTMT 0x0000000009F7C490
UWORD
10
SWORD
99 <SQL_C_DEFAULT>
PTR <unknown type>
SQLLEN 4
SQLLEN * 0x00000000002C1E38
Test 1174-10f0
EXIT SQLGetData with return code 0 (SQL_SUCCESS)
HSTMT 0x0000000009F7C490
UWORD
10
SWORD
99 <SQL_C_DEFAULT>
PTR <unknown type>
SQLLEN 4
SQLLEN * 0x00000000002C1E38 (-1)
Test 1174-10f0
ENTER SQLFetch
HSTMT 0x0000000009F7C490
Test 1174-10f0
EXIT SQLFetch with return code 100 (SQL_NO_DATA_FOUND)
HSTMT 0x0000000009F7C490
Test 1174-10f0
ENTER SQLFreeStmt
HSTMT 0x0000000009F7C490
UWORD
0 <SQL_CLOSE>
Test 1174-10f0
EXIT SQLFreeStmt with return code 0 (SQL_SUCCESS)
HSTMT 0x0000000009F7C490
UWORD
0 <SQL_CLOSE>
6、I also did the test with the Access 2010,and with the Sql Srever/Oracle.
The results are the follows.
1) With the Access 2010(X86 or X64) and Access 2013 X86,it successes when I export the table to the DB Symfoware.But only with the Access 2013 X64,the Access crashed.
2)With the Access 2010(X86 or X64) and Access 2013(X86 or X64),using the Sql Srever/Oracle,it always successes .
According to all the descrived above, I wonder if it a bug of the Access2013 .
Could anyone can help me ?
Thanks for any help.George Zhao
Thank you for your help.
I have already install
the latest patches of the Office 2013.But it doesn't work.It is down also too. And ODBC
drive of Database Symfoware is the newest driver of the Database Symfoware. Now I wonder that
if it si a bug of the ODBC
drive of Database Symfoware,I should fix the bug,but I have analysised the odbc trace log and I do not find any wrongs ,so I think maybe it is a bug of the Access .
I have see many situations about the Access down on the internet . -
How to know or check the type of a field when processing a dynamic table?
Dear all,
When processing a dynamic table i have a short dump because of a convert_of_type incorrect, so i would like to check the type of field-symbol <f> before moving the data (type char) to this field-symbol <f>.
Could you please help me how to check or get the type of field-symbol <f> (because field-symbol <f> is assigned dynamic, so this <f> can be type char, unit, or quantity, ...)?
The source code same as below:
ASSIGN COMPONENT lc_field OF STRUCTURE ls_data TO <f>.
MOVE lv_field TO <f>. (Dump is here when lv_field is char type and <f> is quantity type => could i check the type of <f> if it's char type before using this instruction "MOVE ..."?)
Thanks a lot in advance,
Vinh VoTry to use this way
WRITE lv_field TO <f>.
Instead of
MOVE lv_field TO <f>.
a® -
Error when executing statement for table/stored proc
Hi All,
I am getting this error when executing IDOC to JDBC (Stored Procedure) Scenario.
In my stored procedure I have three insert statements to insert rows in to 3 tables.
This stored procedure is working fine for two insert statements i.e,
For this I have created data type for stored procedure with 10 elements and executed the scenario and was successfully running.
when I added 3rd insert statement to stored procedure ie., when i added 5 more elements to the datatype (totally 15 elements) it starts giving the bellow error in Message Monitoring.
<i><b>Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC_1' (structure 'Statements'): java.sql.SQLException: General error</b></i>
<i><b>Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'COGRP_TMP_PROC_1' (structure 'Statements'): java.sql.SQLException: General error</b></i>
Note:- I have run the stored procedure with three insert statements in Sql Server, and also by calling an external program also, and was working fine.
<i><b> Note : Is there any structure needs to be follow when working with IDOC to Stored procedure.</b></i>
I am struck up with the error, can any body resolve this issue.
Thanks in Advance,
MurthyHi narasimha,
This seems to be any error due to incorrect query formation.In your receiver jdbc channel set the parameter logSQLstatement = true.you can find this parameter in the advanced mode. Using this parameter you will be able to see the sql query which is generated at runtime in the audit log in RWB.
Regards,
Pragati -
Error "Error in ABAP statement when processing an internal table. table."
Hello,
I am facing the error when tried for GR from SRM portal for my shopping cart and for others created shopping cart. The error is
"Error in ABAP statement when processing an internal table. table."
I have the central receipient role. Couold any body assist me?
Thanks,
PijushHi Harish,
Execute the query in RSRT and check whether you have any short dump is in ST22. This would give a clear idea at what might have gone wrong.
Another thing is to check whether the code for the variable is fine in the user exit.
Hope this helps.
Bye
Dinesh -
File to JDBC :Error when executing statement for table/stored proc.
Hi,
I am getting following error when i am trying to insert data into z-table using JDBC recr adapter.
Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ZTEST' (structure 'STATEMENT'): java.sql.SQLException: <u>[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Invalid object name '<b>ZTEST</b>'.</u>
But the database table name 'ZTEST' exists in the system.
XML structure:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_RECR xmlns:ns0="http://urn:srini/FileToJDBC">
<STATEMENT>
<TEST action="INSERT">
<table>ZTEST</table>
<access>
<ROLLNO>123</ROLLNO>
<FIRSTNAME>ABC</FIRSTNAME>
<LASTNAME>XYZ</LASTNAME>
</access>
</TEST>
</STATEMENT>
</ns0:MT_RECR>
Regards,
SrinivasHi,
I have changed my MT str but still getting the same error.Is it possible to insert/ update a z-table using JDBC adapter.
XML str:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_RECR xmlns:ns0="http://urn:srini/FileToJDBC">
<STATEMENT>
<ZTEST action="INSERT">
<access>
<ROLLNO>123</ROLLNO>
<FIRSTNAME>abc</FIRSTNAME>
<LASTNAME>XYZ</LASTNAME>
</access>
</ZTEST>
</STATEMENT>
</ns0:MT_RECR>
Regards,
Srinivas -
my numbers tables will not open correctly on screen, the preview shows but when I open the table it only shows blank. When I print a copy it prints ok any solutions?
Rebooted computer works now ok
-
Trigger a process(IDOC) when Data in Z-table updated
Hi All,
I am working on an interface and the outbound IDOC from R/3 to XI needs to be triggered when a particular field value in a Z*table changes.
So far I am able to trigger the IDOC from the calling Z*prog which updates this table, but I need some exit, PAI etc which will get triggered only when the data in table is updated.
Current Flow chart:
Z-prog starts--->Updates a Z-table--->if sy-subrc=0--->I create an IDOC from the Z-prog itself
What I need:
Z-table is updated--->check if particular filed value changed--->Trigger IDOC
Is it possible to do this.
Many thanks
ShirinHi Balu,
I am triggering my IDOCS from the Z*program itself.
The trigger point is when I have successfully updated the table (sy-subrc = 0).
Then I have used the code below to populate my IDOC. I have also maintained a distribution model, so that is the reason I pass only the idoc type in edidc segment and do not pass any port , receiver etc.
Hope you find the code useful.
Regards
Shirin
Reward points if this was helpful.
*Local Data Declaration
DATA: wa_msg_header TYPE zca_msg_header,
wa_edidc TYPE edidc,
wa_edidd TYPE edidd,
i_edidc TYPE edidc OCCURS 0,
i_edidd TYPE edidd OCCURS 0,
wa_trailer TYPE zca_gs_trailer,
wa_count(10) TYPE n,
wa_allocation_response TYPE zca_allocation_response.
*Populate IDOC segments
* 1. Save the message type and the basic IDoc type* in the control segment
MOVE 'ZMT_ALLOCATION_RESPONSE' TO wa_edidc-mestyp.
MOVE 'ZGS_ALLOCATION_RESPONSE' TO wa_edidc-idoctp.
* 2. Populate the Genius specific Message Header 'ZCA_MSG_HEADER'
wa_msg_header-source = 'SOURCE_SYST'.
wa_msg_header-destination = 'DESTINATION-LS.
wa_msg_header-message_id = ''. "Populate this in XI
wa_msg_header-date_time = ''. "populate this in xi.
wa_msg_header-message_typ = 'I'.
wa_msg_header-status = 'S'.
MOVE 'ZCA_MSG_HEADER' TO wa_edidd-segnam.
MOVE wa_msg_header TO wa_edidd-sdata.
APPEND wa_edidd TO i_edidd.
CLEAR wa_edidd.
* 3 Populate the ALOCATION_RESPONSE segment
CONCATENATE 'EXAM'
sy-datum
sy-uzeit
INTO
wa_allocation_response-uid.
* wa_allocation_response-uid = i_set_number .
wa_allocation_response-set_number = i_set_number .
wa_allocation_response-trigger = '1' . "Always default to Allocation Change .
wa_allocation_response-next_a_exam = i_next_a_exam .
wa_allocation_response-miles_to_a = i_miles_to_a .
wa_allocation_response-next_b_exam = i_next_b_exam .
wa_allocation_response-miles_to_b = i_miles_to_b.
wa_allocation_response-next_major_exam = i_next_maj_exam .
wa_allocation_response-miles_to_major_exam = i_miles_to_maj_exam .
MOVE 'ZCA_ALLOCATION_RESPONSE' TO wa_edidd-segnam.
MOVE wa_allocation_response TO wa_edidd-sdata.
APPEND wa_edidd TO i_edidd.
CLEAR wa_edidd.
*4 Populate the Trailer record 'ZCA_TRAILER'
wa_trailer-data_marker = 'T'.
wa_trailer-checksum = wa_count.
MOVE 'ZCA_TRAILER' TO wa_edidd-segnam.
MOVE wa_trailer TO wa_edidd-sdata.
APPEND wa_edidd TO i_edidd.
CLEAR wa_edidd.
* Check for distribution model and create the IDOC
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
EXPORTING
master_idoc_control = wa_edidc
TABLES
communication_idoc_control = i_edidc
master_idoc_data = i_edidd
EXCEPTIONS
error_in_idoc_control = 1
error_writing_idoc_status = 2
error_in_idoc_data = 3
sending_logical_system_unknown = 4
OTHERS = 5.
* No need for error handling here as the IDOC will be created and ststus record will
* mention the latest ststus including any error message. -
Hello Experts,
I had added Filter in table control. For this I am using FM 'LVC_FILTER'.
But I am getting error as "Filter Internal Error. 15"
Below is my code:
data layo type LVC_S_LAYO.
data GT_FILTER_INDEX type LVC_T_FIDX.
data itab type TABLE OF cxtab_column with HEADER LINE.
loop at tc_item-cols into itab where selected = 'X'.
append itab.
name1-fieldname = itab-screen-name+12.
append name1.
endloop.
loop at itab.
cnt = cnt + 1.
wa_fieldcat-col_pos = cnt.
wa_fieldcat-fieldname = itab-screen-name+12.
wa_fieldcat-tabname = 'GT_FABALOTI'.
APPEND wa_fieldcat TO it_fieldcat1.
CLEAR wa_fieldcat.
endloop.
layo-zebra = 'X'.
CALL FUNCTION 'LVC_FILTER'
EXPORTING
I_CALLBACK_PROGRAMM = sy-repid
it_fieldcat = it_fieldcat1
IT_SELECTED_COLS = name1[]
* IT_VALUE_UNIT =
* IT_GROUPLEVELS =
is_layout = layo
* IS_SELFIELD =
* IT_GROUPS =
* IS_FILT_LAYOUT =
* IT_EVENTS =
* I_NO_DIALOG =
* IT_EXCEPT_QINFO =
* I_IGNORING_CASE =
IMPORTING
ET_FILTER_INDEX = gt_filter_index
* ET_GROUPLEVELS_FILTER =
* ET_FILTER_INDEX_INSIDE =
* E_FILTER_FLAGNAME =
tables
it_data = gt_fabaloti[]
changing
ct_filter = filter_ranges[]
* EXCEPTIONS
* NO_CHANGE = 1
* OTHERS = 2
How should I correct the error.
Please help.Hi Shubham ,
I too have the same requirement . Can you please send me the code because I am not getting these points.
IMPORTING
ET_FILTER_INDEX = gt_filter_index
* ET_GROUPLEVELS_FILTER =
* ET_FILTER_INDEX_INSIDE =
* E_FILTER_FLAGNAME =
tables
it_data = gt_fabaloti[]
changing
ct_filter = filter_ranges[]
Regards
Shek
Maybe you are looking for
-
Vendor closing balances busienss area wise
Dear Guru's Please suggest me, i am executed this report S_ALR_87012082 vendor balance with local currency, i have given business area in dynemic selection, here my problem is - if i am given business area or if i am not given business area also
-
Page settings different in PDF than original Word doc
We regularly create PDFs (using Adobe Acrobat Standard 8.1.2) from word and excel files. The the margins print out different from the word doc and the text and graphics print smaller than the word version. How do I create the PDF to the same settings
-
Sending mail is in error status
Hi guys, I have designed a workflow for the PO.It has to send a mail to the requistioner.When a Gr is made thru MIGO then my WF needs to be triggered and need to send a mail to the requistiner.Iam facing one typical issue here.I have
-
The last four nights I have awoken to a kernel panic attack. I have had none during the day or while running any apps. It only seems to happen sometime in the night while no one is using the computer. I can leave it for hours during the day, and it d
-
R12.1.1 installation on Windows XP - Error
Hi Gurus, I'm installing R12.1.1 in my windows XP (SP2) OS and ended with RW-50004 and RW-50010, below is the failed details from log file. Log file located at F:\oracle\R121VIS\db\tech_st\11.1.0\appsutil\log\R121VIS_oracler12\ApplyDBTechStack_010823