tôi có một cái bàn gọi là sách
CREATE TABLE book
(
id smallint NOT NULL DEFAULT 0,
bname text,
btype text,
bprices numeric(11,2)[],
CONSTRAINT key PRIMARY KEY (id )
)
và một hàm save_book
CREATE OR REPLACE FUNCTION save_book(thebook book)
RETURNS text AS
$BODY$
DECLARE
myoutput text :='Nothing has occured';
BEGIN
update book set
bname=thebook.bname,
btype=thebook.btype,bprices=thebook.bprices WHERE id=thebook.id;
IF FOUND THEN
myoutput:= 'Record with PK[' || thebook.id || '] successfully updated';
RETURN myoutput;
END IF;
BEGIN
INSERT INTO book values(thebook.id,thebook.bname,thebook.btype,
thebook.bprices);
myoutput:= 'Record successfully added';
END;
RETURN myoutput;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
bây giờ khi tôi gọi hàm
SELECT save_book('(179,the art of war,fiction,{190,220})'::book);
tôi nhận được lỗi
ERROR: malformed array literal: "{190"
SQL state: 22P02
Character: 18
Tôi không hiểu vì tôi không thấy bất kỳ lỗi nào trong định dạng của mảng, có giúp được gì không?
ERROR: syntax error at or near "art"
ave_book((179, 'the art of war', 'fiction', '{190,220}')::book
, giống như cách nói của Andriy.
ave_book((179,the art of war,fiction,'{190,220}')::book
. Các hàng được xây dựng không cần báo giá.