Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 PL SQL не вводит последовательность из букв  [new]
anyutka6699
Member

Откуда:
Сообщений: 19
Добрый день всем. Написала программу по вводу последовательности данных.
Только вот она воспринимает только числа, а буквы нет, хотя VARCHAR2, насколько я понимаю, подходит для букв...?
Подскажите пожалуйста, что не так?

SET SERVEROUTPUT ON
SET VERIFY OFF
DEFINE v_from =&ВВЕДИТЕ_ПОСЛЕДОВАТЕЛЬНОСТЬ
DECLARE
TYPE POSLED_CHISEL IS TABLE OF VARCHAR2(100)
INDEX BY VARCHAR2(100) ;
v_posl POSLED_CHISEL;
BEGIN
v_posl(0) :=&v_from;
DBMS_output.put_line(v_posl(0));
END;


И еще подскажите, мне ведь в итоге нужно, что он записывал строку, но выдавал обратно только цифры, причем по порядку и по увеличению (то есть если будет 231 то 1 не выдаст). Надо как нибудь красиво вписать сюда translate, я так понимаю...
23 май 13, 15:54    [14339628]     Ответить | Цитировать Сообщить модератору
 Re: PL SQL не вводит последовательность из букв  [new]
Изя Кацман
Member

Откуда: Великий Эксперимент
Сообщений: 2019
anyutka6699
Подскажите пожалуйста, что не так?
SET SERVEROUTPUT ON
SET VERIFY OFF

DEFINE v_from =&ВВЕДИТЕ_ПОСЛЕДОВАТЕЛЬНОСТЬ

DECLARE 
TYPE POSLED_CHISEL IS TABLE OF VARCHAR2(100)
INDEX BY VARCHAR2(100) ;
v_posl  POSLED_CHISEL;
BEGIN
v_posl(0) :=&v_from;
DBMS_output.put_line(v_posl(0)); 
END;


одинарные кавычки поставь и будет тебе счастье
DECLARE 
   TYPE POSLED_CHISEL IS TABLE OF VARCHAR2(100)
      INDEX BY VARCHAR2(100) ;
   v_posl  POSLED_CHISEL;
BEGIN
   v_posl(0) := '&v_from';
   DBMS_output.put_line(v_posl(0)); 
END;
23 май 13, 16:16    [14339822]     Ответить | Цитировать Сообщить модератору
 Re: PL SQL не вводит последовательность из букв  [new]
anyutka6699
Member

Откуда:
Сообщений: 19
Ураа!!Спасибо)))
А про translate, куда его лучше запихнуть подскажите??
23 май 13, 16:22    [14339859]     Ответить | Цитировать Сообщить модератору
 Re: PL SQL не вводит последовательность из букв  [new]
anyutka6699
Member

Откуда:
Сообщений: 19
Я запихнула translate в курсор, но не знаю, как его красиво вывести через DBMS_output.put_line, а также, чтобы цифры были по порядку..Поможете?

SET SERVEROUTPUT ON
SET VERIFY OFF
DEFINE v_from =&ВВЕДИТЕ_ПОСЛЕДОВАТЕЛЬНОСТЬ
CURSOR depts_cur IS
select str,
translate(str,'1234567890'||
translate('&v_from'||str,'x1234567890','x'),
'1234567890') Числа
from (
select '&v_from' str
from dual
);
DECLARE

TYPE POSLED_CHISEL IS TABLE OF VARCHAR2(100)
INDEX BY VARCHAR2(100) ;
v_posl POSLED_CHISEL;
BEGIN
v_posl(0) :='&v_from';
DBMS_output.put_line('Вывод изначально введенной строки:'||v_posl(0));
END;
23 май 13, 17:22    [14340187]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить