从参数表PL / SQL分配给变量

时间:2014-05-22 01:58:34

标签: sql parameters plsql

我有一个包含4列(REFERENCEID,REFERENCENAME,REFERENCEVALUE,REFCOMMENT)的表,所有这些都是VARCHAR2数据类型。

此表有19条记录。我想创建一个变量v_param并将第16条记录的REFERENCEVALUE传递给它。

之前我遇到过类似的问题,但我的旧参数表中只有1条记录而且我做了

SELECT tbl_parameter.value INTO v_param FROM tbl_parameter

这适用于那个问题,但是老师告诉我们这是一种从参数表中分配值的效率很低的方法,他提到一旦有人在你的表中添加记录,那么你就会在分配值时遇到问题。

这就是我的问题所在,当前参数表中有19条记录,我需要选择第16条记录,第16条记录的值为:

REFERENCEID = REF16
REFERENCENAME = ABC
REFERENCEVALUE = 100
REFCOMMENT = NONE

我正在考虑做这样的事情

SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16'
AND parameter.referencename = 'ABC';

有更有效的方法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

您编写的select语句是正确的。

SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16'
AND parameter.referencename = 'ABC';

您只需在WHERE子句中指定足够的条件,以确保返回所需的单个记录。

例如,如果表中的主键是REFERENCEID,那么您可以使用它:

SELECT parameter.referencevalue INTO v_param FROM parameter
WHERE parameter.referenceid = 'REF16';