2016-12-27 6 views
0

テーブルの列をORDSYS.ORD Imageで更新するプロシージャを作成しようとしています。私が持っているコードは腹が立っていて、使用しようとするとエラーが表示され続けます。いくつか助けてもらえますか?ありがとうプロシージャ内でORDSYS.ORDImageを使用してSQLレコードを更新する方法

手順コード:

create or replace 
PROCEDURE Inserting_Images (REST_ID NUMBER, RESTImage ORDSYS.ORDImage) AS 

    ctx RAW(64):=NULL; 

BEGIN 
    UPDATE restaurant_table 
    Set RESTImage = RESTImage 
    WHERE REST_id = REST_ID; 


COMMIT; 

    EXCEPTION 
    WHEN others THEN 
    BEGIN 
     ROLLBACK; 
     dbms_output.put_line(sqlerrm); 
    END; 
--Error Handling. 

END; 
--Ends the procedure. 

Using Procedure: 
BEGIN 
    inserting_images(52, 'YUSKIN.jpeg'); 
END; 

答えて

0

機能Inserting_Imagesは、あなたが実際にそれを送信しているものに対し、VARCHARで、あなたが望む動作を取得するために、あなたが初期化する必要がある、ORDSYS.ORDIMAGEの引数を受け付けます最初にそのようなORDImageオブジェクト:(docs.oracle.comより引用)

CREATE OR REPLACE DIRECTORY FILE_DIR as '/mydir/work'; 
GRANT READ ON DIRECTORY FILE_DIR TO 'user'; 
inserting_images(52, ORDSYS.ORDImage.init('FILE', 'FILE_DIR','speaker.jpg')); 

+0

は、私は本当に感謝し、そのためにありがとうございます。コードを実行すると、「匿名ブロックが完了しました」と表示されますが、フィールド値はまだNULLと表示されます。 –

+0

ファイルを含むフォルダへの実際のパスを '/ mydir/work'に置き換えてください。また、ユーザーの 'user'とファイル名の 'speaker、jpg'を置き換えてください。 – monkeyStix

+0

イメージをインポートすると、レコードのORDSYS.ORDImageプロパティはすべてNULLです。 "22288. 00000 - "ファイルまたはLOB操作%sが失敗しました\ n%s " *原因:ファイルまたはLOBでの操作が失敗しました。サムがサムネイルを作成しようとしているとき。あなたは助けてもらえますか? –

関連する問題