作为PL/SQL新手,我想编写一个简单的函数,当我输入其关联ID值(即,输入一个字段并返回与同一记录相关联的另一个字段)时返回一个字符串值。例如,在包含地址和关联ID的表中,如果我将'100'(不含引号)传入函数,则会返回'350 Pearl St'。Oracle PL/SQL:如何根据相同记录的ID字段返回字符串值?
到目前为止,我有:
CREATE OR REPLACE FUNCTION get_term
(MAJOR_ID_IN IN NUMBER)
RETURN VARCHAR2
IS
BEGIN
SELECT t.TERM_NAME
FROM CV_RELATION r, CV_TERMS t
WHERE t.TERM_ID = r.MAJOR_ID_IN; --Primary Key linked to Foreign Key
END get_term;
这将返回一个列表;但是,我想要字符串名称,以便我可以在其他函数中使用它来返回成功消息,而不是返回有点神秘的ID(例如,'您已成功更新地址350 Pearl St'与'您已成功更新地址100')。请注意,我正在从另一个表中的外键调用ID。
完美,谢谢。为了简单和不相关,我没有添加异常(NO_DATA_FOUND和TOO_MANY_ROWS),但我会抓住它们。标记为正确。 – snl330
+1用于锚定返回变量的数据类型。 (虽然这可能会导致问题,因为返回数据类型被声明为'varchar2',但变量是锚定的数据类型?在这种情况下,因为锚定类型**是**'varchar2',所以无关紧要。 )+1也用于讨论潜在的例外情况。干得不错! – mathguy
@mathguy由于在cv_terms表中的定义,锚定类型将始终为varchar2。我还会为你+1,杜克,但我还不能。 :) 再次感谢。 – snl330