Database fields importing as wrong data type
I am using Crystal Reports 2008, connecting to an Oracle 9i database.
Some of our database tables have a field with data type of SDO_GEOMETRY. I know this is an unsupported data type in CR, so the field list in the field explorer skips over it when I import tables using the Database Expert. However, it doesn't skip over the data type, giving each field below the SDO_GEOMETRY field the wrong type. To illustrate:
Field Name Type (Size)
GEOLOC SDO_GEOMETRY (1)
ID NUMBER (22)
NAME STRING (25)
DESC STRING (200)
CR 2008 will skip GEOLOC, assign ID as String (2000)how it interpreted SDO_GEOM in ver. XIName as Number, and Desc as String (25). I also noticed this behavior in CR XIR2. Has anyone else run into this? The workaround I've found is to write a SQL command; but is there a setting or hotfix out that fixes the bug?
Hello,
I would recomend using a stored procedure to connect to the data and assign a Crystal-valid data type to each field so that there won't be a chance for this sort of issue to happen when pulling in data.
-Sean
Similar Messages
-
Oracle BI Administration Tool 11g - Fields have the XML data type
I'm using Oracle BI Administration Tool 11.1.1.3.0 and I need to import Metadata an Oracle table where same fields have the XML data type.
Please, there is someone can tell me what I must do to define these fields in Administration Tool?
Regards.Hi,
in u r RPD -->Try to select import Connection Type as : XMLA then give it the URL of u r analysis services 2000 then u can able to import it.
refer:
http://www.biblogs.com/2008/02/01/obiee-hybrid-olap-reporting-using-ms-analysis-services-oracle/
http://www.rittmanmead.com/2007/11/essbase-integration-with-obiee-101331/
Thanks
Deva -
Wrong data type when writing XML file
We are trying to write an XML file from ODI but we get the following error:
ODI-1217: Fallo de la sesión CMT_PAQ_CREA_XML (15001) con código de retorno 8000.
ODI-1226: Fallo en el paso WRITE_XML_SCHEMA después de 1 intento(s).
ODI-1232: Fallo en la ejecución del procedimiento WRITE_XML_SCHEMA.
ODI-1228: Fallo en la tarea WRITE_XML_SCHEMA (Procedimiento) en el destino XML conexión CMTInCaMo.
Caused By: java.sql.SQLException: Could not save the file D:\ODI\oracledi\XMLFiles\Cuentas11g.xml because a class java.sql.SQLException occurred and said: java.sql.SQLException: java.sql.SQLException: Wrong data type: type: <b>NUMERIC (2) expected: INTEGER value: 301000000232</b>
at com.sunopsis.jdbc.driver.xml.SnpsXmlFile.writeToFile(SnpsXmlFile.java:740)
at com.sunopsis.jdbc.driver.xml.SnpsXmlConnection.internalExecute(SnpsXmlConnection.java:713)
at com.sunopsis.jdbc.driver.xml.SnpsXmlPreparedStatement.executeUpdate(SnpsXmlPreparedStatement.java:111)
at com.sunopsis.sql.SnpsQuery.executeUpdate(SnpsQuery.java:665)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.executeUpdate(SnpSessTaskSql.java:3218)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execStdOrders(SnpSessTaskSql.java:1785)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java:2805)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2515)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:537)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:449)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:1954)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:322)
at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:224)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:246)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:237)
at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:794)
at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:114)
at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:83)
at java.lang.Thread.run(Thread.java:619)
The datastores have valid records but when we try to write them in the XML file it didn't work.
¿Can somebody help us?Thanks, let me give you an update:
The datatype of the element is defined as follows:
<xs:element name="AcctNo" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value="60"></xs:maxLength>
</xs:restriction>
</xs:simpleType>
</xs:element>
The ODI reverse ingeneering has created the column as VARCHAR(255). I think this ok, because XML driver doesn't takes in account the xsd element defined length.
We have checked the XSD and is valid.
In the other hand, I must say that we have created an interface that is loading data into the corresponding datastore without any problem but we couldn't generate an XML file from it.
Any other advice? -
Database adapter not importing table having data type as WF_EVENT_T
Hi All,
I have a requirement to import a table in the Database adapter. That table is having a column of data type “WF_EVENT_T”.
When I tried to import the table in database adapter I got the error as "The following tables are not supported in the Database Adapter and were not imported".
Then I modified the table by adding one more column with some other data type and tried to import that table.
It got imported successfully but I was not able to see the column with data type WF_EVENT_T in the table.
Any pointers to this would be of great help.
Thanks.Hi Harish
Thanks for your response.
I can create the table with the data type 'String'. However, the problem is when I try to update the table from a program in SE38 or a Function Module in SE37.
When I try to activate the PROGRAM or FUCNTION, I GET A MESSAGE THAT I MENTIONED EARLIER.
Here is the simple program that I have created that I am not able to activate
==========================================
REPORT ZTEST_STRING1.
tables: ztest.
ztest-zid = 2.
ztest-zstring1 = 'ABC'.
insert ztest.
===========================================
ztest has two fields
zid which is NUMC type
and zstring1 which is STRING type.
When I try to activate I get an error message as follows:
'ztest' must be a flat structure. You cannot use internal tables,
strings, references, or structures as components.
Edited by: Ram Prasad on Mar 20, 2008 6:08 PM -
How could I Write data into a field in Oracle whose data type is VARCHAR2
The target data I want to write into Oracle is in http://tw.yahoo.com/info/utos.html.
Now, these data is stored in Mysql database and the field which stores these data uses "Text" as its data type.
I want to derive these data from mysql database and store them into a field of oracle database.
In oracle, I create field whose data type is varchar2(4000) to store these data.
I use JSP to derive data from mysql and insert into oracle through JDBC.
But the result of the page shows me that "javax.servlet.ServletException: Data size bigger than max size for this type: 25623".
Please anyone could help to resolve this problem?
Thank you very much.My hunch is that the problem is that VARCHAR2(4000), but default, allocates 4000 bytes of storage. Depending on your database character set, a single character may require up to 4 bytes of storage.
If you are on 9i, you can declare the column VARCHAR2(4000 CHAR) to allocate 4000 characters of storage. You can also set NLS_LENGTH_SEMANTICS to CHAR, which will cause Oracle to assume that your declarations are in characters rather than bytes.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
IDOC - XI - IDOC scenario. I can't import XSD to Data Type
Helo!
I have some problem with creating data tape. I have to create data type similar to IDOC structure which i imported from SAP system. Similar becouse in this DT I need to add some more elements. Becouse the IDOC structure is large I wont to import IDOC structure to this DT automaticly. I try to eksport XSD structure of my IDOC and then import to data type but i can read the monit:
The tag <element> is not allowed at <<xsd:schema><xsd:element><xsd:element>>.
I'm beginer in XSD so I don't now how to change this file.
Can somebody help me on that or explain whot I can do to make this DT.
Thanks for answer!Hi,
U can import the IDoc XSD to External defination and use it in your Message Mapping and Interfacing Mapping.
There is no need to create a data type of message type for IDoc.
External Defination
<b>External Definition</b> enables you to import a local WSDL, XSD, or DTD file to the Integration Repository and specify which parts of the schema to be used as a description for a message.
U can use this ED as
1.Inbound/Outbound in the Message Interface.
2.Source/Target structure for the Message Mapping.
In a scenario If there is a necessitity for changing the Occurance of some segment of the IDOC steps u perform is.
1.Import the IDoc to XI.
2.Export the IDoc(i.e XSD format) and save it to the local machine.
3.Make changes to the IDoc structure by modifying the XSD file in the local machine.
4.Save it as an XSD file Itself.
5.Import the XSD file in the IR under the External Defination.
6.Use this XSD in your Message Interface/Mapping which is same as IDoc structure but with some changes that u have made.
Go Thru this Blog <a href="/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change Bundling - Trick without BPM</a> BY Michal Krawczyk where the Occurance of the IDoc is changed to 1...Unbounded from 1...999999999 by using the XSD.
Regards
Santhosh
<a href="Remember to set the thread to solved when you have received a solution to set the thread to solved when you have received a solution</a>
Use a Good Subject Line, One Question Per Posting - Award Points -
The difference between FIELD-SYMBOL and normal DATA TYPE
Dear experts,
Please see the example below, both are output the same result.
DATA: EXTERNAL_RECORD(4000),
POSITION TYPE I,
LENGTH TYPE N,
ENTRY TYPE STRING.
EXTERNAL_RECORD = '0005Smith0007Edwards0005Young'.
DO.
LENGTH = EXTERNAL_RECORD+POSITION(4).
IF LENGTH = 0.
EXIT.
ENDIF.
ADD 4 TO POSITION.
MOVE EXTERNAL_RECORD+POSITION(LENGTH) TO ENTRY.
WRITE ENTRY.
ADD LENGTH TO POSITION.
IF POSITION >= 4000.
EXIT.
ENDIF.
ENDDO.
--OR It can be written as--
DATA: EXTERNAL_RECORD(4000),
POSITION TYPE I,
LENGTH TYPE N.
FIELD-SYMBOLS <ENTRY>.
EXTERNAL_RECORD = '0005Smith0007Edwards0005Young'.
DO.
LENGTH = EXTERNAL_RECORD+POSITION(4).
IF LENGTH = 0.
EXIT.
ENDIF.
ADD 4 TO POSITION.
ASSIGN EXTERNAL_RECORD+POSITION(LENGTH) TO <ENTRY>.
WRITE <ENTRY>.
ADD LENGTH TO POSITION.
IF POSITION >= 4000.
EXIT.
ENDIF.
ENDDO.
Is there any special circumstances we need to use FIELD-SYMBOL?
Why is FIELD-SYMBOL is introduce in the first place?
Kindly advice with example.
Thanks in advance for those who can help me on this.HI,
You can use field symbols to make the program more dynamic. In this example the name of a table control is substituted by a field symbol. Thus you cal call the form with any internal table, using the name of the table control as a parameter.
Example
form insert_row
using p_tc_name.
field-symbols <tc> type cxtab_control. "Table control
assign (p_tc_name) to <tc>.
insert 100 lines in table control
<tc>-lines = 100.
Field symbols allow you to:
** Assign an alias to a data object(for example, a shortened
name for data objects structured through several hierarchies
- <fs>-f instead of rec1-rec2-rec3-f)
** Set the offset and length for a string variably at runtime
** Set a pointer to a data object that you determine at runtime (dynamic ASSIGN)
** Adopt or change the type of a field dynamically at runtime
** Access components of a structure
** (from Release 4.5A) Point to lines of an internal table
(process internal tables without a separate work area)
Field symbols in ABAP are similar to pointers in other programming
languages. However, pointers (as used in PASCAL or C) differ from ABAP
field symbols in their reference syntax.
The statement ASSIGN f to <fs> assigns the field f to field
symbol <fs>. The field symbol <fs> then "points" to the
contents of field f at runtime. This means that all changes to the
contents of f are visible in <fs> and vice versa. You declare
the field symbol <fs> using the statement FIELD-SYMBOLS: <fs>.
Reference syntax
Programming languages such as PASCAL and C use a dereferencing symbol
to indicate the difference between a reference and the object to which
it refers; so PASCAL would use p^ for a pointer instead of p, C would
use *p instead of p. ABAP does not have any such dereferencing symbol.
** In PASCAL or C, if you assign a pointer p1 to a pointer p2,
you force p1 to point to the object to which p2 refers (reference semantics).
** In ABAP, if you assign a field symbol <fs1> to a field
symbol <fs2>, <fs1> takes the value of the data object to
which <fs2> refers (value semantics).
** Field symbols in ABAP are always dereferenced, that is,
they always access the referenced data object. If you want to
change the reference yourself in ABAP, you can use the ASSIGN statement
to assign field symbol <fs1> to field symbol <fs2>.
Using field symbols
You declare field symbols using the FIELD-SYMBOLS statement.
They may be declared either with or without a specific type.
At runtime you assign a field to the field symbol using the ASSIGN
statement. All of the operations on the field symbol act on the field
assigned to it.
When you assign a field to an untyped field symbol, the field symbol
adopts the type of the field. If, on the other hand, you want to assign
a field to a typed field symbol, the type of the field and that of the
field symbol must be compatible.
A field symbol can point to any data object and from Release 4.5A,
they can also point to lines of internal tables.
The brackets (<>) are part of the syntax.
Use the expression <fs> IS ASSIGNED to find out whether the field
symbol <fs> is assigned to a field.
The statement UNASSIGN <fs> sets the field symbol <fs> so
that it points to nothing. The logical expression <fs>
IS ASSIGNED is then false. The corresponding negative expression
is IF NOT <fs> IS ASSIGNED.
An unassigned field symbol <fs> behaves as a constant with
type C(1) and initial value SPACE.
MOVE <fs>
TO dest Transfers the initial value SPACE to the variable dest
MOVE 'A' to <fs>
Not possible, since <fs> is a constant
(runtime error).
To lift a type restriction, use the CASTING addition in the
ASSIGN statement. The data object is then interpreted as though
it had the data type of the field symbol. You can also do this
with untyped field symbols using the CASTING TYPE <type> addition.
The danger with pointers is that they may point to invalid areas.
This danger is not so acute in ABAP, because the language does not
use address arithmetic (for example, in other languages, pointer p
might point to address 1024. After the statement p = p + 10, it would
point to the address 1034). However, the danger does still exist, and
memory protection violations lead to runtime errors.
A pointer in ABAP may not point beyond a segment boundary. ABAP does
not have one large address space, but rather a set of segments.
Each of the following has its own segment:
* All global data
* All local data
* Each table work area (TABLES)
* Each COMMON PART
You should only let field symbols move within an elementary field or
structure where ABAP allows you to assign both within the global data
and beyond a field boundary.
Rgds
Umakanth -
Metadata Field -- List of Strings -- Data Type
I'm trying to create a dropdown List to create a custom Metadata . i saw that the data type "list of strings" is available on already created metadata , but once i try to create a custom metadata list I can find the List of Strings datatype . did i missed something when i installed FCS?
is this possible.
I wish i could add a keyword dropdown list, as we can do with booleans but of course with more than 2 choices.Sorry, since the french translation of the manual is not crystal clear, i didn't know i had to use the lookup feature. i jsut bought Getting Started with Final Cut Server (Matthew Geller - PeachPress ed.) where i got the final answer.
anyway, it's not very handy because it would be easier to unlock the List of Strings darta type to create a new metadata field.
i'm a newbie sorry again. -
Does new 1402 Activity object in Cloud for Customer have wrong data type namespaces?
I see that the individual "activity" objects (e.g., ActivityTask, AppointmentActivity, etc) are being deprecated as of 1405 and moving to a new Activity object with a TypeCode. That makes a lot of sense.
In reviewing this new Activity object, I've noticed that many of the node elements utilize Data Types in the http://sap.com/xi/Common/DataTypes namespace instead of the http://sap.com/xi/AP/Common/GDT. For example, the root node element UUID has a data type UUID in the http://sap.com/xi/Common/DataTypes namespace, unlike all the other objects in the Public Solution Model.
There are many more elements in this new Activity object that are mismatched like this to other common usage in other objects. Is this a new trend or a mistake?Hello Gregory, Alessandro,
just for clarification:
SAP wanted to eliminate the superflous supplementary components from the data types used in the Business Objects.
Take the GDT Identifier as an example. It has the following supplementary components:
SCHEME_ID
SCHEME_VERSION_ID
SCHEME_AGENCY_ID
SCHEME_AGENCY_SCHEME_ID
SCHEME_AGENCY_SCHEME_AGENCY_ID
CONTENT
You very seldom need the SCHEME_ID or the SCHEME_AGENCY_ID (if the ID is a GTIN or DUNS number then you need them). I never came over a situation to use the SCHEME_AGENCY_SCHEME_AGENCY_ID.
So the data types from the "new" namespace omit those components. But SAP noticed the effort to adapt all the coding.
Therefore it was decided that only new objects will use the data types from the new namepace.
In the case of the ActivityTask, AppointmentActivity, etc. this wil requires - as Alessandro mentioned - some adoption effort.
HTH,
Horst -
Help needed in extracting pipe delimited fields in a CLOB data type
hi
i Had a table with clob field as shown below.
CREATE TABLE TRANSACTION_INFO
TRASACTION_ID CLOB,
LOG_ID NUMBER
Insert into TRANSACTION_INFO
(TRASACTION_ID, LOG_ID)
Values
('354502002020910|000000610214609663||09/27/09 08:02:37|RNEW|DC25|MOTOROLA|8802939198', 123);
Insert into TRANSACTION_INFO
(TRASACTION_ID, LOG_ID)
Values
('354599892020910|000000610214609663||09/27/10 08:12:47|SOLD|DC23||8802939198', 456);
COMMIT;As you can see Clob field is a pipe delimited data.Now i am able to extract the first two fields using the below querry.But it may be the right solution as
substring function fails if there is missing character in any on the fields.
Also when there is a null value in any of the fields,how can i be able to get as null value ? Basically i want to get the values in a delimited manner.
how can we do this ?
Select Substr (TRASACTION_ID, 1, Instr (TRASACTION_ID, '|')-1) field1,
Substr (TRASACTION_ID, 17, Instr (TRASACTION_ID, '|')+2) field2
From TRANSACTION_INFO;
output should be like as shown
FIELD1 FIELD2 FEILD3 FEILD4
354502002020910 000000610214609663 09/27/09 08:02:37
354599892020910 000000610214609663 09/27/10 08:12:47Thanks
Redehi Michael
Thanks for the solution and its my bad not mention that there is a possibility of having a null value at the start of the record also which RPLACE function no longer works for this case.
For example
with transaction_info (trasaction_id, log_id)
as (
select '354502002020910|000000610214609663||09/27/09 08:02:37|RNEW|DC25|MOTOROLA|8802939198', 123 from dual union all
select '354599892020910|000000610214609663||09/27/10 08:12:47|SOLD|DC23||8802939198', 456 from dual union all
select '|000000610214609663||09/27/10 08:12:47|SOLD|DC23||8802939198', 456 from dual
select trim(regexp_substr (trasaction_id, '[^|]+', 1, 1)) f1,
trim(regexp_substr (trasaction_id, '[^|]+', 1, 2)) f2,
trim(regexp_substr (trasaction_id, '[^|]+', 1, 3)) f3,
trim(regexp_substr (trasaction_id, '[^|]+', 1, 4)) f4,
trim(regexp_substr (trasaction_id, '[^|]+', 1, 5)) f5
from (select replace (trasaction_id, '||', '| |') trasaction_id from transaction_info)
F1 F2 F3 F4 F5
354502002020910 000000610214609663 09/27/09 08:02:37 RNEW
354599892020910 000000610214609663 09/27/10 08:12:47 SOLD
000000610214609663 09/27/10 08:12:47 SOLD Now the last record is wrongly created.... -
How can I read the data type of a field in an MS Access database
I need to be able to determine if a field in an Access database is of a certain data type, and if it isn't, to change it to what it should be.
I can't seem to find any way of reading the data type of any field in any table - can anyone give me a metod of getting this info?
Thanks
..BobDoes <cfdbinfo> work for Access DBs?
You might be better off asking this on a MS Access forum. It's more of an Access issue than a CF one.
Adam -
Importing an SQL Server TEXT data type field in Oracle - problem with LONG
Hello,
I work in Oracle 9i and I created a view on a distant SQL Server database that contains a TEXT data type field. But I have a problem when I select that field in Oracle; I have the following error message: "ORA-00997: forbidden use of LONG data type".
Could anybody have a solution for me, to solve that problem?
Thanks a lot!It is very difficult to suggest anything without seeing your code. I don't even know if what you are seeing is the actual value or an error code. Often, negative numbers are indicative of error codes.
For instance -1 could mean that you have an invalid reference or path, etc...
Can you post your code? -
Domain for data type in Oracle 8i database
Hi Sir,
Does Oracle database supports domain creation for data type.
for example, can I create a domain called shorttext which is VARCHAR2(50). Then when I specify a data type for a column in table, then I just declare the column as domain.
eg. address SHORTTEXT;
--where SHORTTEXT is a domain.
How is this implemented in Oracle database and supported by front end tools like Oracle Developer 6.0.
Hope someone can provide some clear explanation on this.
Thanks.The ordimagesignature is not something you can see or hear. It is strictly binary metadata about the image, used only to compare images to each other.
What are you trying to do?
Larry -
Urgent!!!----Update a field of Long data type via trigger
While it is obvious that it is no way for an Oracle trigger to update a field of a Long data type, is it a feasible way to call a java stored procedure from the trigger to achieve that purpose? If not, can you suggest any good solution to this?
Thanks so much.Scripter -
When you try to do a Set and Put, it is always good to explicitly set the statement's cursor type to something other than forward only, like keyset, and the lock type to something other than read-only. See if that helps...
Scott Richardson
National Instruments -
Creating Custom fields (data type QUAN) using EEWB
Hi all
I tried to create two customised fields using EEWB for CRM Opportunity:
1. Projected Volume (data type 'QUAN', length 13, 3 decimal places)
2. Projected Unit (data type 'UNIT')
In the SAP-generated tables, I have set the reference table field for 'Projected Volume' to point to 'Projected Unit'. However, I encountered errors that is related to Table Buffering and Restricted Transport for the Projected Volume field.
If I were to change the data type to 'NUMC', field generation is ok. Does anyone know to resolve this issue? I need the Projected Volume field to be of data type 'QUAN' since decimal place is required.
Thanks for your advice!SAP Note 746227 has addressed this issue. I will close this question.
Maybe you are looking for
-
How to set up PopProxy* log file size ?
Dear All, Does anybody know how to set up MMP PopProxy* log file size and rollovertime ? ./imsimta version Sun Java(tm) System Messaging Server 7.0-3.01 64bit (built Dec 9 2008) libimta.so 7.0-3.01 64bit (built 09:24:13, Dec 9 2008) Steve
-
How to use Application Integrator for iView Creation
Hi all any one can help me how to create an iView(webshop b2b iview) by using the Application integrator in portal Regards sunil
-
I went to the manuals to figure out how to get the album artwork onto my ipod. It said to go to ipod nano in the sources, (where is that?). I went to my ipod in devices since I didn't know where that was. Then it said to click on the music tab and cl
-
Enhancement SO_DOCUMENT_SEND_API1
Hi Experts, While trying to create an implicit enhancement in the standard function module SO_DOCUMENT_SEND_API1, I am getting the following erro. Object FUGR SOI1 is part of the central basis and therefore cannot be enhanced Exception of class CX_EN
-
Hello all. I've been using the MXMLC servlet compiler that comes with the fds-tomcat tutorial. I have recently tried to compile with MXMLC using the ant task. The application compiles the swf correctly except it cant seem to find the spring services