通常我不会使用Oracle DB,但今天我必须编写一个返回GUID的小存储过程。 (根据Oracle的数据类型RAW)
这就是我创造的。我可以编译存储过程,但是当我执行它时,我得到以下错误:字符串长度约束必须在范围内(1 ... 32767)。
CREATE OR REPLACE PROCEDURE GetId (MyInputVar IN VARCHAR2, Guid OUT RAW)
AS
BEGIN
SELECT "unid" into Guid FROM MyDB."incident" WHERE "ExternalId" = GetId.MyInputVar;
END;
DECLARE GiveMeTheGuid RAW;
OtherSystemOrderId VARCHAR2 (60 CHAR) := 'ORDERNR1000';
BEGIN
Sitefinity_Order_NR(OtherSystemOrderId, GiveMeTheGuid);
DBMS_OUTPUT.PUT_LINE(GiveMeTheGuid);
END;
答案 0 :(得分:1)
RAW变量声明需要大小。
DECLARE
theID RAW(32);
OtherSystemOrderId VARCHAR2 (60 CHAR) := 'ORDERNR1000';
BEGIN
GetID(OtherSystemOrderId, theID);
dbms_output.put_line('unid is ' || theID);
END;
匿名阻止完成
unid是3F66DF77FC234C7B887A18F33C174A6A