我有下面的配置表:
id\程序文件\名称VSTR\内容P1AC1P1BC2P1CC3P1DC4P1EC5P1FC6P1GC7
我有下面的方法基于id\u过程来获取vstr\u内容值。
SET SERVEROUTPUT ON;
DECLARE
config procedures_text_config%rowtype;
BEGIN
SELECT
*
INTO config
FROM
procedures_text_config
WHERE
id_procedure = 'P1';
dbms_output.put_line(config.vstr_content);
END;
但是,我希望能够以以下格式(或类似格式)提取指定id\u过程和vstr\u名称的vstr\u内容:
config.a.vstr_content (expected output:C1).
1条答案
按热度按时间igsr9ssn1#
我不确定你能做你想做的事(至少,在甲骨文里不行)。
从table上拿东西的通常方法是用
select
语句或(如果需要)函数。将参数传递给它并得到结果。这就是它的工作原理。您不会传递“config.a.vstr\u content”(不管它代表什么)。这里有几个例子,看看这些是否有帮助。
(哦,是的-您的代码甚至无法运行,它将失败并出现太多行错误)。
样品表:
一个简单的函数,返回标量变量;就像您的例子一样,如果多行满足where条件,那么它可能会失败。
测试:
那么,返回一个refcursor怎么样?
测试:
或者,返回集合:
测试:
如果这些都没什么帮助,请解释一下你写的最后一句话的确切意思(“不过,我想要一种方式……”)。