кто-то направляет мне код, я хочу написать процедуру в SQL оракуле, которая принимает ввод от пользователя и говорит, что этот ввод является символом или нет - PullRequest
0 голосов
/ 26 апреля 2019
create or replace procedure check_chracter
Declare x char
x:= "enter_value"
as begin
if( (x>='a' and x<='z') or (x>='A' and x<='Z'))

    print"number is character";    
else
print"number is not character";
end;

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

это будет работать в sql developer:

CREATE OR REPLACE PROCEDURE abc
    (p1 in varchar2)
AS
  BEGIN
    if(ascii(p1)>=65 and ascii(p1)<=90) then
    DBMS_OUTPUT.PUT_LINE('its a character');
    elsif(ascii(p1)>=97 and ascii(p1)<=122) then
    DBMS_OUTPUT.PUT_LINE('its a character');
    else 
    DBMS_OUTPUT.PUT_LINE('its a  not a character');

    end if;

    END;
/
set serveroutput on;
declare
p1 varchar(20);
p2 varchar(20);
begin
select :a into p1 from dual;
abc (p1);
end;
/
0 голосов
/ 26 апреля 2019

Вы можете использовать команду REGEXP_LIKE и PROMPT, которая работает в SQL * Plus, SQL-разработчике, как редакторы.

CREATE OR REPLACE PROCEDURE check_chracter(
     p_in VARCHAR2)
as BEGIN
 IF regexp_like(p_in,'^[a-zA-Z]$') then
      dbms_output.put_line( 'value is a character');   
    ELSE
      dbms_output.put_line( 'value is not a character');
 END IF;
END;

Выполнение

set serveroutput on
ACCEPT x PROMPT 'enter value: '
exec check_chracter('&x');

Вывод

enter value: 3
SQL> exec check_chracter('&x')
value is not a character

PL/SQL procedure successfully completed.


enter value: q
SQL> exec check_chracter('&x')
value is a character

PL/SQL procedure successfully completed.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...