Delphi 2009/ODAC 6 exception - EVariantTypeCastError
Posted: Tue 02 Jun 2009 18:17
Testing with Oracle DB 11g, 11g client, Unicode flags set to True.
Compile the following TYPE spec and body.
Change the TYPE spec to...
...and compile it. Compile the TYPE body again. You should get an EVariantTypeCastError, "Could not convert variant of type (Null) into type (OleStr)."
Thanks,
Michael
Compile the following TYPE spec and body.
Code: Select all
CREATE OR REPLACE TYPE 상점 AS OBJECT ( 도시 VARCHAR2(20),
매니저 VARCHAR2(20),
광장_치수 INTEGER,
당지수입 NUMBER,
MEMBER PROCEDURE 경리바꾸다(관리자_로 IN VARCHAR2),
MEMBER PROCEDURE 확장_크기(피트에증액 IN NUMBER,
새로운크기 OUT NUMBER),
MEMBER FUNCTION 임금시작 RETURN NUMBER
);
/
CREATE OR REPLACE TYPE BODY 상점 AS
MEMBER PROCEDURE 경리바꾸다(관리자_로 IN VARCHAR2) IS
BEGIN
매니저 := 관리자_로;
END 경리바꾸다;
MEMBER PROCEDURE 확장_크기(피트에증액 IN NUMBER, 새로운크기 OUT NUMBER) IS
BEGIN
광장_치수 := 광장_치수 + 피트에증액;
새로운크기 := 광장_치수;
END 확장_크기;
MEMBER FUNCTION 임금시작 RETURN NUMBER IS
BEGIN
IF 도시 IN ('아틀란틱', '뉴욕', '샌프란시스코', '로스안젤스', '치카고')
THEN
RETURN 당지수입 /1900;
ELSE
RETURN 당지수입 /2000;
END IF;
END 임금시작;
END;
/Code: Select all
CREATE OR REPLACE TYPE 상점 AS OBJECT ( 도시 VARCHAR2(20),
-- 매니저 VARCHAR2(20),
광장_치수 INTEGER,
당지수입 NUMBER,
MEMBER PROCEDURE 경리바꾸다(관리자_로 IN VARCHAR2),
MEMBER PROCEDURE 확장_크기(피트에증액 IN NUMBER,
새로운크기 OUT NUMBER),
MEMBER FUNCTION 임금시작 RETURN NUMBER
);
/Thanks,
Michael