有人指导我编写代码,我想在sql oracle中编写一个过程,该过程接受用户输入并告诉此输入是否为字符

时间:2019-04-26 08:09:14

标签: sql oracle

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 个答案:

答案 0 :(得分:1)

这将在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;
/

答案 1 :(得分:0)

您可以使用{* 1}和REGEXP_LIKE命令,这些命令在SQL * Plus(像编辑器这样的SQL开发人员)中可以使用。

PROMPT

执行

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');