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

как да зацикля приемането на потребителски вход с pl/sql?

Както казаха други, PL/SQL сам по себе си не е подходящ за тази задача, имате нужда от UI отгоре, за да взаимодействате с крайния потребител. Въпреки това, ако наистина имате нужда да направите това в SQL Plus, е възможно да използвате техниката, която описах в този SO въпрос .

Трябва да създадете 2 SQL Plus скрипта:

1) Скрипт за извършване на едно вмъкване, тук наречен script_insert.sql:

insert into t1 values ('&1.');
@main

2) Скрипт за управление на процеса, тук наречен main.sql:

accept selection prompt "Please enter value, enter 'done' when no more values: "

set term off verify off

column script new_value v_script

select case '&selection.'
       when 'done' then ''
       else '@script_insert &selection.'
       end as script
from dual;

set term on

@&v_script.

Сега в SQL Plus можете да го стартирате така:

SQL> select * from t1;

no rows selected

SQL> @main
Please enter value, enter 'done' when no more values: 1
Please enter value, enter 'done' when no more values: 2
Please enter value, enter 'done' when no more values: 3
Please enter value, enter 'done' when no more values: done
SQL> select * from t1;

        N1
----------
         1
         2
         3

Позволете ми да повторя, че това демонстрира, че може да се направи, не бих твърдял, че е добър начин за прилагане на изискването - освен ако не е просто ad hoc инструмент, който да се използва от DBA или разработчик. Никога не бих дал краен потребител SQL Plus като потребителски интерфейс!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да избегнем съхраняването на идентификационни данни за свързване с Oracle с JDBC?

  2. Намерете най-дъщерния възел на родител (всяко ниво) в Oracle

  3. Разрешаване на математически функции PL/SQL

  4. Как да избегнете грешка ORA-04091 в рамките на тригер

  5. премахнете конкретна дума от низ