Oracle
 sql >> база данни >  >> RDS >> Oracle

Изучаване на променливи за обвързване в PL/SQL заедно с входни и изходни изчисления DBMS_OUTPUT.PUT_LINE

Свързване на променливи и променливи за заместване са различни неща, така че формулировката на проблема е подвеждаща. И това е само SQL*Plus версията на свързващите променливи; може да има малко по-различно (или поне по-малко очевидно) значение за анализатора.

По същество вие обърквате PL/SQL променливи със заместващи променливи SQL*Plus. Когато цитирате &d_length вие дефинирате заместваща променлива и потребителят ще бъде подканен за нейната стойност в този момент. Но той е напълно независим от d_length в PL/SQL DECLARE блокирай.

Можете да погледнете ACCEPT команда за чист начин за получаване на стойности от потребителя, преди да започнете да блокирате, но можете да го направите и по следния начин:

SET SERVEROUTPUT ON
DECLARE
    d_length    NUMBER := &q_length;
    d_height    NUMBER := &q_height;
    d_width     NUMBER := &q_width;
    d_volume    NUMBER;
BEGIN
    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);

   DBMS_OUTPUT.PUT_LINE(
       'The dimensions of the swimming pool are ' || '?');
END;
/

Не сте сигурни какво искате да показва последният ред на изхода; това различно ли е от вече показаните три измерения?

Можете също да го направите с променливи за свързване, като ги дефинирате с

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java низ за свързване за поддръжка на функцията Oracle TAF

  2. Пример за конвейерна функция на Oracle

  3. varchar2(n BYTE|CHAR) по подразбиране -> CHAR или BYTE

  4. Каква е разликата между „не е в“ и „не съществува“?

  5. Използвайте резултата от Bulk Collect в заявка за избор без курсор