我正在尝试创建一个过程,该过程将使用ORDSYS.ORD图像更新表中的列。我拥有的代码如下,在尝试使用它时,它总是告诉我错误。可以帮忙吗?谢谢
程序代码:
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;
最佳答案
函数Inserting_Images接受ORDSYS.ORDImage的参数,而实际发送的是VARCHAR,要获得所需的行为,您需要先初始化ORDImage对象,如下所示:
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'));
(引自docs.oracle.com)