【发布时间】:2013-02-08 19:57:35
【问题描述】:
我已经解决了这个问题,并让它在声明的替换变量上正常工作,但我无法让它为 BIND 变量正确计算。我被告知它与 SQL*PLUS 和 Oracle 的开发人员混淆了。这是我最初回答正确的问题,但 BIND 变量部分不起作用。 Learning Bind Variables Question
所以我有使用替换变量计算矩形棱镜体积的代码,但想使用像这样声明的 BIND 变量。我的教科书说我必须使用 PRINT 并在结束后打印; / 命令并且不显示 dbms_output 所以这可能是一个问题。这不是一种非常实际的做事方式,我明白这一点。
SET SERVEROUTPUT ON
VARIABLE d_length NUMBER;
VARIABLE d_height NUMBER;
VARIABLE d_width NUMBER;
DECLARE
d_volume NUMBER;
BEGIN
:d_length := &q_length;
:d_height := &q_height;
:d_width := &q_width;
DBMS_OUTPUT.PUT_LINE('The length dimension is: ' || :d_length);
DBMS_OUTPUT.PUT_LINE('The height dimension is: ' || :d_height);
DBMS_OUTPUT.PUT_LINE('The width dimension is: ' || :d_width);
d_volume := :d_length * :d_height * :d_width;
DBMS_OUTPUT.PUT_LINE(
'The rectangular prism volume for the swimming pool is: '
|| d_volume);
END;
/
所以我的问题是,如何让它与 BIND 变量一起使用,我将变量放在块之外作为 VARIABLES,然后声明 d_volume,执行该计算,并使用这些绑定变量打印出游泳池的体积.我就在这附近,但有些不对劲。它打印出 dbms_output 语句,但不显示任何变量。
【问题讨论】:
-
绑定变量是 SQL 语句中的占位符。这里没有 SQL,所以真的一点都不清楚你的最终目标是什么。