Blob.getBytes(long offset, int length) buggy?
i have problems with this method. i tried different parameters from
(0,1) to (1,blobname.length()) and (0,blobname.length()). i always got an ArrayIndexOutOfBoundsException, though by blob was a valid blob and
!= "null"
where is my mistake? or is this method buggy?
henrik
And what does length() return?
Similar Messages
-
Memory leak in String(byte[] bytes, int offset, int length)
Has anyone run into memory leak problem using this String(byte[] bytes, int offset, int length) class? I am using it to convert byte array to string, and I am showing memory leak using this class. Any idea what is going on?
Hi,
If you post in Native methods forum I assume you are using this constructor in the native side.
Be aware that getting char * from jstring eats memory that you must free before returning from native with env->ReleaseStringUTFChars().
--Marc (http://jnative.sf.net) -
Hi all,
I am posting this message again.
I would appreciate any help, as I am stuck with a customer issue.
This method hangs for the following values
read(xchar, 0, 1)
Does not throw any exception.
The inputstream does have data in it.
the characterset is cp037.
I know for sure that the InputStream has data in it. In fact the read method reads couple of fields with length greater than 1 and hangs when it tries to read data with length 1.
Bug # 4401798 talks about some error similar to this being fixed. Any one has any idea, which jdk had this problem and which one has a fix for this?
Thanks.You should have continued in your original thread, rather than starting a new one. What you have posted in this new thread could have gone in the old one:
http://forum.java.sun.com/thread.jspa?threadID=665303 -
This method hangs for the following values
read(xchar, 0, 1)
Does not throw any exception.
The inputstream does have data in it.
the characterset is cp037.So the problem is probably in your implementation of InputStream. Do you implement the available() method? What will your class do if you attempt to read more bytes than there are? (say, call read(chars, 0, 1000000))
The InputStreamReader keeps an internal buffer (of 1024 bytes?) which it uses for decoding the bytesto characters..if your stream blocks when InputStreamReader is filling its buffer you'd get this sort of behaviour. -
Can anyone tell me how you would keep all the characters from within one pair of tags together each time characters() is called?
the character() method doesn't read all the character data at once, and i would like to create a buffer of what it has read.
thank you.I recommend using getNodeName and/or/combination
with
getNodeValue to get the strings.i have tried using a buffer, and i have got that to work!
At long last I am seeing the string I would like to see as it is in the xml file!
thank you for your help
here is an example of my code:
private boolean isDescription = false;
StringBuffer sb = new StringBuffer();
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
if(localName.equals("description")) {
sb = new StringBuffer();
isDescription = true;
public void characters(char []ch, int start, int length) throws SAXException {
if(isDescription == true) {
String desc = new String(ch, start, length);
sb.append(desc);
public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
if(localName.equals("description")) {
isDescription == false;
System.out.println(sb.toString());
} -
TIPS(63) : LONG DATA TYPE의 LENGTH 구하기
제품 : PL/SQL
작성날짜 : 1999-04-15
TIPS(63) : LONG DATA TYPE의 LENGTH 구하기
=========================================
PURPOSE
다음은 function 을 적용할 수 없는 long data type 의 length 를
구하는 방법을 소개한다.
Explanation
Long DataType 에 대해 Length 를 구하려 하는 경우 다음과 같은 Error 가 발생한다.
SQL> create table TOY
2 (Toy_ID NUMBER, Description LONG);
Table created.
SQL> select LENGTH(Description) from TOY;
select LENGTH(Description) from TOY
ERROR at line 1:
ORA-00932: inconsistent datatypes
"Inconsistent DataTypes" Error 는 LONG DataType 으로 정의된 Column 에
Function 을 적용하였기 때문에 발생한다.
VARCHAR2 Type 을 사용하면 정상 처리할 수 있으나, Oracle7 에서는 VARCHAR2 는
2,000 Characters 만 저장할 수 있으며, Oracle8 에서는 4,000 Characters 이다.
Oracle8 에서는 Long Data 를 저장하기 위해 LOB DataType 을 사용할 수 있으며,
LONG Data Type 은 Oracle7/Oracle8 모두 Support 되므로 LONG Type 에 대해
Length 를 확인하는 방법을 알아본다.
Example
다음은 anonymous PL/SQL Block 을 통해 TOY Table 에서 LONG Column 의
Length 를 구하는 Script 이다.
1. Single Record 에 대한 예
$ vi len_long.sql
declare
length_var NUMBER;
cursor TOY_CURSOR is
select * from TO;
toy_val TOY_CURSOR%ROWTYPE;
begin
open TOY_CURSOR;
fetch TOY_CURSOR into toy_val;
length_var := LENGTH(toy_val.Description);
DBMS_OUTPUT.PUT_LINE('Length of Description: '||length_var);
close TOY_CURSOR;
end;
SQL> set serveroutput on
SQL> @len_long
Length of description : 21
PL/SQL procedure successfully completed.
2. Multiple Record 에 대해서는 cursor FOR Loop 를 사용한다.
$ vi len_long.sql
declare
length_var NUMBER;
cursor TOY_CURSOR is
select * from TOY;
toy_val TOY_CURSOR%ROWTYPE;
begin
for toy_val in TOY_CURSOR loop
length_var := LENGTH(toy_val.Description);
DBMS_OUTPUT.PUT_LINE('ID: '||toy_val.Toy_ID);
DBMS_OUTPUT.PUT_LINE('Length of Description: '||length_var);
end loop;
end;
SQL> set serveroutput on
SQL> @len_long
ID: 1
Length of Description: 21
ID: 2
Length of Description: 27
PL/SQL procedure successfully completed.
Reference Document
------------------Hi Frank,
I have the exact same scenario where I have huge data coming from DB and its a must that I provide pagination.
I tried implementing as per the document but the pagination is not working for me too.
Details of the scenario:
1. I have a session facade method which takes a searchCriteria (custom criteria) as the input parameter and returns a list of entities.
a)This is the first method that I call as a default method activity in my taskflow.
b)The result of this method is dragged and dropped as table in the jsff. (*which created a methodIterator in pageDef unlike the documentation which has accessorIterator*).
2. I declared 2 class level variables
a) List<Entity> result: which is set once the method in the (1) above is executed.
b) long size: which is also set from the method (1) above.
3. I defined getEntityAll(int index,int range) method which returns List<Entity> as per the index and range using the result (class level variable populated by method in 1)
4. I defined getEntityAllSize() method which returns the size (class level variable populated by method in 1).
5. I created the datacontrol on top of the session facade bean.
6. I made sure to change the DataControlHandler = "oracle.adf.model.adapter.bean.DataFilterHandler"
7. I've set the rangeSize = 25 in my pagedef.
Now when I run my page, my default method activity calls the method in (1) above and populates the table, with a scroll bar.
Once I start scrolling, it calls my method in (1) but it does not call either of the methods (getEntityAll(int index,int range) & getEntityAllSize()) which adds the pagination behavior.
After this, my table has just 25 rows and further scrolling does not invoke any of the methods from the session bean.
I'm using jdev : JDEVADF_11.1.1.4.0_GENERIC_101227.1736.5923 (11.1.1.4.0).
Please let me know if I am missing anything.
Thanks in advance!
Swapna -
Oracle.sql.BLOB.getBytes
Hi,
When my application( weblogiv 12c) is trying to fetch data from a BLOB column of a table, it is getting the below exception.
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: java.lang.NullPointerException
at oracle.sql.BLOB.getBytes(BLOB.java:344)
at oracle.jdbc.driver.OracleBlobInputStream.needBytes(OracleBlobInputStream.java:181)
at oracle.jdbc.driver.OracleBufferedStream.readInternal(OracleBufferedStream.java:169)
at oracle.jdbc.driver.OracleBufferedStream.read(OracleBufferedStream.java:143)
at oracle.jdbc.driver.OracleBufferedStream.read(OracleBufferedStream.java:132)
at com.tcs.bancs.ARCH.Q_USER.Get(Q_USER.java:4026)
... 63 more
I am thinking in lines of inappropriate oracle drivers. This application is currently pointed to oracle 11g database and throwing exception. However, when I swtich the database to another one (oracle 10g) with exactly the same data (to be precise, it is a replica of 11g mentioned above), it functions without any issue.
Could anyone please help me in getting through this ..It does sound like a bug/incompatibility between drivers and DBMSes. Open an official support case with Oracle.
-
Hi BI Experts,
We are getting error below when run the query in BEx Broadcaster whereas the same query can be run without error in RSRT. One of the object used in the query is 0TCTBISBOBJ (BI Application Obj). When i remove this object from the query, i am able to execute the query in BEx Broadcaster. Please advice.
Error: com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException
com.sap.ip.bi.base.exception.BIBaseRuntimeException ERROR
com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException
Log ID: 00144F25CCDC303C0000010600005CBD00046ADC8504A84D
Initial cause
ABEND RS_EXCEPTION (000): Part-field access (offset = 45, length = 45) to a data object of the size 60 exceeds valid boundaries.
MSGV1: Part-field access (offset = 45, length = 45) to a
MSGV2: data object of the size 60 exceeds valid
MSGV3: boundaries.
Stack trace: com.sap.ip.bi.base.application.exceptions.AbortMessageRuntimeException: Termination message sent
We have recently upgraded to SAP BI7.0 SP19.
Thanks in advance.
Best Regards,
Pei FungCan someone throw some light on this? Thanks.
-
Install(byte[] buffer,short offset, byte length)
Anyone could tell me where i can find the defination of data format of 'buffer' in 'install(byte[] buffer,short offset, byte length)', it is standard, right?!
Look in appendix A.2 of the GlobalPlatform Card Specifications 2.1.1 (pages 160,161). The same information is specified for the install() method in the Java Card 2.2 API spec. The format is the same for Java Card 2.1.1 and GlobalPlatform 2.0.1'.
G -
Use of timer.wait(long miliseconds, int nanoseconds)
I have a Timer object and I want my midlet(main thread) to sleep when I call timer.wait(long miliseconds, int nanoseconds). How to do it?
ThanksFew things:
- Timer class can execute jobs encapsulated in TimerTask either once after a delay or at given intervals. Please look at the APIs and search for any tutorial online - it is all quite straight forward.
- call to Timer.wait() (or any Object.wait() for this matter ) will cause the current thread to wait until the time lapses, or current thread gets interrupted or another thread calls notify or notifyAll on the same object
Now do you want current thread of execution to simply stop for some time? This is not advisable. If you want your MIDlet to be put to background (to be put to sleep) that is a different story. Please have a look at the topic of *[MIDlet lifecycle|http://developers.sun.com/mobility/learn/midp/lifecycle/]* You will find that due to specification vagueness various vendors will have different events causing a MIDlet to enter paused state.
I think what you need is MIDlet.notifyPaused() call and in TimerTask call to MIDlet.resumeRequest().
Good luck!
Daniel -
Viewc32 is changing long to int when creating view.java
I have copied the view and the java code generated from the view by viewc32. In the view field <b>oszStartTime </b>is a long. In java it is represented as a int. The .h file is a long. Is this the way it is suppose to work? I thought the .java file would represent the field as a long. I have created about 4 views and this is consistent for all of them. All longs are changed to ints in the .java programs.
Thanks for the help...
Here is my view
VIEW GetEqmhistView
#type cname fbname count flag size null
string iReqName - 1 - 30 -
string iMsgName - 1 - 30 -
short iMsgVersion - 1 - - 0
string iszTrainSection - 1 - 2 -
string iszTrainSymbol - 1 - 8 -
string iszTrainDay - 1 - 3 -
short onSiteNumber - 100 - - 0
long <b>oszStartTime </b>- 100 - - 0
char ocSiteKind - 100 - - \0
char oReserved - 100 - - \0
long omdwReturnStatus - 1 - - 0
long omdwErrorCode - 1 - - 0
string omszErrorMessage - 1 - 256 -
END
Here is the Java Generated:
package com.nscorp.apps.util;
import java.io.*;
import java.lang.*;
import weblogic.wtc.jatmi.*;
import weblogic.wtc.jatmi.Utilities;
public class GetEqmhistView extends TypedView32 implements Serializable {
private String iReqName = null;
private String iMsgName = null;
private short iMsgVersion = 0;
private String iszTrainSection = null;
private String iszTrainSymbol = null;
private String iszTrainDay = null;
private short[] onSiteNumber = null;
private int[] <b>oszStartTime </b>= null;
private char[] ocSiteKind = null;
private char[] oReserved = null;
private int omdwReturnStatus = 0;
private int omdwErrorCode = 0;
private String omszErrorMessage = null;
private boolean _associatedFieldHandling = false;
public GetEqmhistView() {
super("GetEqmhistView");
this.onSiteNumber = new short[100];
this.oszStartTime = new int[100];
this.ocSiteKind = new char[100];
this.oReserved = new char[100];
return;
* Gets the current state of associated field handling.
* @return the current state (true=on, false=off)
public boolean getAssociatedFieldHandling()
return _associatedFieldHandling;
* Sets the state of associated field handling.
* @param state the desired state (true=on, false=off)
public void setAssociatedFieldHandling(boolean state)
_associatedFieldHandling = state;
* Gets the value of the iReqName element of this view
* @return The value which this element has
public String getiReqName()
return(this.iReqName);
* Sets the value of the iReqName element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setiReqName(String value)
if (value.length() > 30)
throw new IllegalArgumentException("Data too large for iReqName");
this.iReqName = value;
* Gets the value of the iMsgName element of this view
* @return The value which this element has
public String getiMsgName()
return(this.iMsgName);
* Sets the value of the iMsgName element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setiMsgName(String value)
if (value.length() > 30)
throw new IllegalArgumentException("Data too large for iMsgName");
this.iMsgName = value;
* Gets the value of the iMsgVersion element of this view
* @return The value which this element has
public short getiMsgVersion()
return(this.iMsgVersion);
* Sets the value of the iMsgVersion element of this view
* @param value The value to set the element to
public void setiMsgVersion(short value)
this.iMsgVersion = value;
* Gets the value of the iszTrainSection element of this view
* @return The value which this element has
public String getiszTrainSection()
return(this.iszTrainSection);
* Sets the value of the iszTrainSection element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setiszTrainSection(String value)
if (value.length() > 2)
throw new IllegalArgumentException("Data too large for iszTrainSection");
this.iszTrainSection = value;
* Gets the value of the iszTrainSymbol element of this view
* @return The value which this element has
public String getiszTrainSymbol()
return(this.iszTrainSymbol);
* Sets the value of the iszTrainSymbol element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setiszTrainSymbol(String value)
if (value.length() > 8)
throw new IllegalArgumentException("Data too large for iszTrainSymbol");
this.iszTrainSymbol = value;
* Gets the value of the iszTrainDay element of this view
* @return The value which this element has
public String getiszTrainDay()
return(this.iszTrainDay);
* Sets the value of the iszTrainDay element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setiszTrainDay(String value)
if (value.length() > 3)
throw new IllegalArgumentException("Data too large for iszTrainDay");
this.iszTrainDay = value;
* Gets the value of the onSiteNumber element of this view
* @return The value which this element has
public short[] getonSiteNumber()
return(this.onSiteNumber);
* Gets the value of the onSiteNumber element of this view
* @param index The element in the array to return
* @return The value which this element has
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public short getonSiteNumber(int index)
return(this.onSiteNumber[index]);
* Sets the value of the onSiteNumber element of this view
* @param value The value to set the element to
* @throws ArrayIndexOutOfBounds if the array given is too large
public void setonSiteNumber(short[] value)
if (value.length > 100)
throw new ArrayIndexOutOfBoundsException("Array too large for onSiteNumber");
if (value.length < onSiteNumber.length)
for(int i = 0; i < value.length; i++)
onSiteNumber[i] = value;
else
this.onSiteNumber = value;
* Sets the value of the onSiteNumber element of this view
* @param value The value to set the element to
* @param index The element in the array to set
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public void setonSiteNumber(short value, int index)
this.onSiteNumber[index] = value;
* Gets the value of the oszStartTime element of this view
* @return The value which this element has
public int[] getoszStartTime()
return(this.oszStartTime);
* Gets the value of the oszStartTime element of this view
* @param index The element in the array to return
* @return The value which this element has
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public int getoszStartTime(int index)
return(this.oszStartTime[index]);
* Sets the value of the oszStartTime element of this view
* @param value The value to set the element to
* @throws ArrayIndexOutOfBounds if the array given is too large
public void setoszStartTime(int[] value)
if (value.length > 100)
throw new ArrayIndexOutOfBoundsException("Array too large for oszStartTime");
if (value.length < oszStartTime.length)
for(int i = 0; i < value.length; i++)
oszStartTime[i] = value[i];
else
this.oszStartTime = value;
* Sets the value of the oszStartTime element of this view
* @param value The value to set the element to
* @param index The element in the array to set
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public void setoszStartTime(int value, int index)
this.oszStartTime[index] = value;
* Gets the value of the ocSiteKind element of this view
* @return The value which this element has
public char[] getocSiteKind()
return(this.ocSiteKind);
* Gets the value of the ocSiteKind element of this view
* @param index The element in the array to return
* @return The value which this element has
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public char getocSiteKind(int index)
return(this.ocSiteKind[index]);
* Sets the value of the ocSiteKind element of this view
* @param value The value to set the element to
* @throws ArrayIndexOutOfBounds if the array given is too large
public void setocSiteKind(char[] value)
if (value.length > 100)
throw new ArrayIndexOutOfBoundsException("Array too large for ocSiteKind");
if (value.length < ocSiteKind.length)
for(int i = 0; i < value.length; i++)
ocSiteKind[i] = value[i];
else
this.ocSiteKind = value;
* Sets the value of the ocSiteKind element of this view
* @param value The value to set the element to
* @param index The element in the array to set
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public void setocSiteKind(char value, int index)
this.ocSiteKind[index] = value;
* Gets the value of the oReserved element of this view
* @return The value which this element has
public char[] getoReserved()
return(this.oReserved);
* Gets the value of the oReserved element of this view
* @param index The element in the array to return
* @return The value which this element has
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public char getoReserved(int index)
return(this.oReserved[index]);
* Sets the value of the oReserved element of this view
* @param value The value to set the element to
* @throws ArrayIndexOutOfBounds if the array given is too large
public void setoReserved(char[] value)
if (value.length > 100)
throw new ArrayIndexOutOfBoundsException("Array too large for oReserved");
if (value.length < oReserved.length)
for(int i = 0; i < value.length; i++)
oReserved[i] = value[i];
else
this.oReserved = value;
* Sets the value of the oReserved element of this view
* @param value The value to set the element to
* @param index The element in the array to set
* @throws ArrayIndexOutOfBounds if the array index is out of bounds
public void setoReserved(char value, int index)
this.oReserved[index] = value;
* Gets the value of the omdwReturnStatus element of this view
* @return The value which this element has
public int getomdwReturnStatus()
return(this.omdwReturnStatus);
* Sets the value of the omdwReturnStatus element of this view
* @param value The value to set the element to
public void setomdwReturnStatus(int value)
this.omdwReturnStatus = value;
* Gets the value of the omdwErrorCode element of this view
* @return The value which this element has
public int getomdwErrorCode()
return(this.omdwErrorCode);
* Sets the value of the omdwErrorCode element of this view
* @param value The value to set the element to
public void setomdwErrorCode(int value)
this.omdwErrorCode = value;
* Gets the value of the omszErrorMessage element of this view
* @return The value which this element has
public String getomszErrorMessage()
return(this.omszErrorMessage);
* Sets the value of the omszErrorMessage element of this view
* @param value The value to set the element to
* @throws IllegalArgumentException if the value is too long
public void setomszErrorMessage(String value)
if (value.length() > 256)
throw new IllegalArgumentException("Data too large for omszErrorMessage");
this.omszErrorMessage = value;
public void _tmpresend(DataOutputStream encoder)
throws TPException, IOException {
int lcv;
try {
Utilities.xdr_encode_string_length(encoder,iReqName, 30);
Utilities.xdr_encode_string_length(encoder,iMsgName, 30);
encoder.writeInt(iMsgVersion);
Utilities.xdr_encode_string_length(encoder,iszTrainSection, 2);
Utilities.xdr_encode_string_length(encoder,iszTrainSymbol, 8);
Utilities.xdr_encode_string_length(encoder,iszTrainDay, 3);
for (lcv = 0; lcv < 100; lcv++) {
encoder.writeInt(onSiteNumber[lcv]);
for (lcv = 0; lcv < 100; lcv++) {
encoder.writeInt(oszStartTime[lcv]);
for (lcv = 0; lcv < 100; lcv++) {
encoder.writeInt((int)ocSiteKind[lcv]);
for (lcv = 0; lcv < 100; lcv++) {
encoder.writeInt((int)oReserved[lcv]);
encoder.writeInt(omdwReturnStatus);
encoder.writeInt(omdwErrorCode);
Utilities.xdr_encode_string_length(encoder,omszErrorMessage, 256);
catch (IOException ie) {
System.out.println("Error encoding view buffer: " + ie);
return;
public void tmpostrecv(DataInputStream decoder, int recvsize)
throws TPException, IOException {
int lcv;
iReqName = Utilities.xdr_decode_string(decoder, null);
iMsgName = Utilities.xdr_decode_string(decoder, null);
iMsgVersion = (short)decoder.readInt();
iszTrainSection = Utilities.xdr_decode_string(decoder, null);
iszTrainSymbol = Utilities.xdr_decode_string(decoder, null);
iszTrainDay = Utilities.xdr_decode_string(decoder, null);
for (lcv = 0; lcv < 100; lcv++) {
onSiteNumber[lcv] = (short)decoder.readInt();
for (lcv = 0; lcv < 100; lcv++) {
oszStartTime[lcv] = decoder.readInt();
for (lcv = 0; lcv < 100; lcv++) {
ocSiteKind[lcv] = (char)decoder.readInt();
for (lcv = 0; lcv < 100; lcv++) {
oReserved[lcv] = (char)decoder.readInt();
omdwReturnStatus = decoder.readInt();
omdwErrorCode = decoder.readInt();
omszErrorMessage = Utilities.xdr_decode_string(decoder, null);
return;Hi Corey,
The behavior you are seeing is expected. A long in Tuxedo is a 32 bit value. That maps to a Java int data type which is also a 32 bit value.
Regards,
Todd Little
BEA Tuxedo Engineering -
PO LONG TEXT of Length 400+ char
Hello ABAPers,
I have a case where i want to update the PO_Long_Text field in MM02. The Text Editor in the Po Long Text screen can take only 72 char per line and an internal tables variable to which I will import my actual long text of approx 400 char.Since a CHAR variable can take max of 256 chars only,I will have to break the Long text into 2 parts. How can I achieve this? Any idea/hint?
Regards,
Bhavin P ShahHello,
Unfortunately, there is no possibility to change the length to more than 60. This is because all interfaces are based on 60 characters and the storage on the database is 60. Please refer to the attached SAP notes :
545923 FAQ: Technical limits/customer namespace/p
540868 Technical limits for characteristics
Best Regards,
Des -
Conversion of long and int: strange result and no warning
Why does Java allow this?
long l = Long.MAX_VALUE / 10;
System.out.println(l); // result 922337203685477580
int i = (int)l;
System.out.println(i); // result -858993460The compiler accepts it and the runtime accepts it. Why? Complete nonsense is the result!
The same happens with using a Long object and calling the intValue() method.
Can someone explain it to me?What do you think of operator overloading?Well, I don't have much influence -:) But this is what Guy Stele, SUN Fellow, say:
Overloaded operators are still a subject of controversy. They are almost indispensable for certain kinds of mathematical work, but people who oppose adding them to the Java language point out, quite rightly, that the feature was badly abused in C++ for nonmathematical purposes, making code much harder to read than necessary. Most Java applications are nonmathematical in nature. One could make a good argument that commercial applications have no need for operator overloading, except that commercial applications do use (or should use) BigDecimal arithmetic, and it would be really nice to be able to use + and - and * and / with BigDecimal numbers. Much the same can be said of so-called "lightweight classes": their greatest value would lie in supporting numerical concepts such as complex numbers and interval arithmetic.
We have an interesting decision to make that is more a political or business question than a technical one: should the Java language be extended to support the needs of mathematical applications? If so, then I would argue strongly for introducing operator overloading and lightweight classes -- I'm pretty sure such facilities would also get used for other purposes. If not, then maybe we should just make + and - and * and / work for the BigInteger and BigDecimal classes as a special case, much the same way that + is already a special case for the String class. -
Hi,
Who can explain to me what differences are between BLOB Format
and LONG RAW format ?? Which between the twice is better to store
picture and sound in a Oracle database.
It's for a application project in Developer V6 on the web.
Thanks,
Bart
nullBart (guest) wrote:
: Hi,
: Who can explain to me what differences are between BLOB
Format
: and LONG RAW format ?? Which between the twice is better to
store
: picture and sound in a Oracle database.
: It's for a application project in Developer V6 on the web.
: Thanks,
: Bart
I would recommend to use blobs. This are the new datatypes in
Oracle8, they can store up to 4 GB (lang raw 2 GB); in addition,
lang raw are only for backward compatibility (see you oracle 8
documentation). Furthermore, you can use the dbms_lob package on
LOB datatypes to manipulate lob data in the database.
peter
null -
Displaying long text of length 1000 in Bex or query views
Iam having a situation to report on master data of length more then 60 like in 1000 its basically comment field driving business .
Option to load in BI back end is split into mutiple infoobjects and concatenate but iam still stuck with reporting part .Went thru eugenes blog but still didnt get the correct output.
Goodday.
Edited by: SapBuddy on Mar 12, 2010 3:40 PMHello,
Unfortunately, there is no possibility to change the length to more than 60. This is because all interfaces are based on 60 characters and the storage on the database is 60. Please refer to the attached SAP notes :
545923 FAQ: Technical limits/customer namespace/p
540868 Technical limits for characteristics
Best Regards,
Des
Maybe you are looking for
-
Indesign cs4: why are some documents extremely slow?
i am working on a iMac (2.8ghz core i5, 8gb memory). Some documents are incredibly slow on my iMac - on others in the same office the documents are working fine. Even if I set the preview of images to 'low' after every action - selecting a tool, sele
-
Hello, I want to MAP below scenario. Is it possible and what are the possible way to MAP using CIN Scn1) The Indian company(TH) places an order to the Vendor for Raw material with an instruction to directly supply the goods to a sub supplier. In such
-
I have a problem when create the "Credit memo request" doc. type CR, reference doc. is billing doc. and my sales doc. that i did the billing doc. sales area is 2100/10/71 and i have to create cr doc with reference to billing doc. and sales area shoul
-
Multithreaded client: which listener to use?
I've got a client program that needs to talk to a server. Instead of building in all the RMI and server-aware stuff into the client, I'm making a layer between then, called ClientHookup. This way, we can write alternate front-ends, and just make sure
-
Make terminator stay open after command completion? [SOLVED]
I'd like to execute a command into terminator from my Openbox menu and have it stay open after the command completes. I know urxvt does this with a "-hold" option but I'd like to just use one terminal instead of two or more for different things. Last