2012-04-02 13 views
1

を閉じました。 My Clientは、JasperReportsテクノロジーを使用してすべてのレポートを移行/開発したいと考えています。注:私はいくつかの掘削を行なったし、日の最後のカップルでJasperReportsのスルー私の方法をナビゲートして、私はこれまでのところだところ、これはJavaの経験iReportは4.5.1は、私はJasperReportsのとiReportはデザイナーに新しいです

を持っていません。

は、私は私のレポートを設計するためにiReportはデザイナーを使用しています。私のSQL文および手順以下

、私がコンパイルされ、すべてのは、Oracle SQL Developerの編集者でもあります。

-- Table 1: Books 
CREATE TABLE BOOKS 
(
    BOOK_ID NUMBER(10) PRIMARY KEY, 
    BOOK_NAME VARCHAR2(50), 
    AUTHOR_NAME VARCHAR2(50), 
    BOOK_ISBN VARCHAR2(10), 
    PRICE NUMBER(10,2), 
    PUBLISHER_ID NUMBER(10) 
); 

-- Records for Books Table 
INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000001, 'I AM NOBODY', 'PERFECTION', '1234-1234', '10.50', 5000000001); 

INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000002, 'NOBODY IS PERFECT', 'PERFECTION', '1234-1234', '40.50', 5000000001); 

INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000003, 'I AM PERFECT', 'PERFECTION', '1234-1234', '50.50',5000000001); 

INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000004, 'NOBODY IS PERFECT', 'IM PERFECT', '1234-4321', '60.00',5000000002); 

INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000005, 'PERFECTION', 'IM PERFECT', '1234-4321', '20.00',5000000002); 

INSERT INTO BOOKS (BOOK_ID, BOOK_NAME, AUTHOR_NAME, BOOK_ISBN, PRICE, PUBLISHER_ID) 
    VALUES (1000000006, 'NOBODY', 'IM PERFECT', '1234-4321', '45.50',5000000002); 

-- Table 2: Publisher 
CREATE TABLE PUBLISHER 
(
    PUBLISHER_ID NUMBER(10) PRIMARY KEY, 
    PUBLISHER_NAME VARCHAR2(50), 
    ADDRESS VARCHAR2(100), 
    STREET VARCHAR2(100), 
    CITY VARCHAR2(100), 
    STATE VARCHAR2(40), 
    COUNTRY VARCHAR2(100), 
    ZIP VARCHAR2(20) 
); 

-- Records for Publisher Table 
INSERT INTO PUBLISHER (PUBLISHER_ID, PUBLISHER_NAME, ADDRESS, STREET, CITY, STATE, COUNTRY, ZIP) 
    VALUES(5000000001, 'MG GRAW HILL', '1212', 'AVE OF THE STARTS','LOS ANGELES', 'CALIFORNIA', 'USA', '300001'); 

INSERT INTO PUBLISHER (PUBLISHER_ID, PUBLISHER_NAME, ADDRESS, STREET, CITY, STATE, COUNTRY, ZIP) 
    VALUES(5000000002, 'TATA MG GRAW HILL', '12', 'STARTS AVE','CORONA', 'CALIFORNIA', 'USA', '300010'); 

-- Alter table to make Publisher Id as foreign key in the Books table 
ALTER TABLE BOOKS ADD 
CONSTRAINT FK_BOOKS_PUBLISHER_ID 
FOREIGN KEY(PUBLISHER_ID) 
REFERENCES PUBLISHER(PUBLISHER_ID); 

-- Procedure to take publisher id as input parameter and list values from books table along with the publisher name 
CREATE OR REPLACE PROCEDURE PUBLISHER_AND_BOOKS (P_PUBLISHER_ID IN NUMBER, PUBLISHER_CUR OUT SYS_REFCURSOR) IS 
BEGIN 
    OPEN PUBLISHER_CUR FOR 
    SELECT 
     BOOK_ID,  
     BOOK_NAME, 
     AUTHOR_NAME, 
     BOOK_ISBN, 
     PRICE,   
     PUBLISHER_NAME 
    FROM 
     BOOKS, 
     PUBLISHER 
    WHERE 
     BOOKS.PUBLISHER_ID = PUBLISHER.PUBLISHER_ID 
    AND 
     PUBLISHER.PUBLISHER_ID = P_PUBLISHER_ID; 
END; 

-- Granting execution rights for the procedure 
GRANT EXECUTE ON PUBLISHER_AND_BOOKS TO PUBLIC; 

-- Description of the procedure 
DESC PUBLISHER_AND_BOOKS; 

私は今、確立されたデータベース接続にiReportはデザイナーに行って、私はからフィールドのリストを取得するために読むのフィールドをクリックすると

{call PUBLISHER_AND_BOOKS($P{P_PUBLISHER_ID}, $P{ORACLE_REF_CURSOR})} 

以下のように私のプロシージャを呼び出すためにデータセットを作成しました私の手順は、私は、だから私は、[OK]をクリックして進行しreprotに手動でフィールドを追加し、私は報告書Iグラムをプレビューすると、次のエラーメッセージ

Error: SQL problems: Invalid column type. 

を取得していますエラーメッセージは表示されません。だから私は私のデータソース/データセットを右クリックしてレポート名とビューのクエリを空白だったので、私は上記のようにプロシージャ名を与え、次の私は同じエラーメッセージが表示されます

今私は接続できません私はレポート設計を進めることができるように、いずれかがこの問題を解決するのに役立つことができればそれは大きな助けになるだろう、私のレポートのデザイン

を続行するデータセットを作成します。私はまた、java.sql.ResultSetのようにカーソルのparamを定義することによってで試してみました
2をPLSQLするレポートクエリでクエリ言語を設定している
1.

NOTE --- NO LUCK, same error
3 。私は私のクラスパスにPlSqlQueryExecuterクラスの終了を適合している
4.私はこれを見てきました:
http://rajendratambat.blogspot.in/2011/10/calling-oracle-stored-procedure-in.html?showComment=1333264003761#c6148133813463786818 --- NO LUCK, same issue

そうすることができます誰の時間sys_refcursorを使用するストアドプロシージャを引き続き使用できる別のソリューションをお試しください。

また作業チュートリアルのリンクやブログが大きな助けになります。

ありがとうございます。

RajendraTambatで前後にいくつかの試行錯誤と、いくつかの建設的な電子メールの後Meeza

答えて

関連する問題