`
youngmaster
  • 浏览: 58479 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

PL-SQL 与正则表达式 ---- config.sql

阅读更多

config.sql

-- Clean up the database objects
DROP TRIGGER validateUser;
DROP PROCEDURE check_email;
DROP TABLE userinfo; 

-- Create the table 
CREATE TABLE userinfo( 
	username VARCHAR2(20) , 
	password VARCHAR2(40), 
	email VARCHAR2(50) NOT NULL, 
	phone VARCHAR2(12) NOT NULL,
	hobbies VARCHAR2(2000), 
	address VARCHAR2(2000) 
	)

-- Add PRIMARY KEY constraint
ALTER TABLE USERINFO ADD CONSTRAINT USERNAME_PRIMARY_KEY PRIMARY KEY (USERNAME)


-- This statement adds a check constraint which does a check on the password format. 
-- This uses a regular expression to check if the password is alpha-numeric or not. 
ALTER TABLE USERINFO ADD CONSTRAINT check_password  CHECK (REGEXP_LIKE( password,'(([0-9][a-z]{1}|[a-z][0-9]{1}))' ))

-- Insert data into the userinfo table
INSERT INTO USERINFO ( USERNAME, PASSWORD, EMAIL, PHONE, HOBBIES,ADDRESS ) VALUES ( 'Jason', 'steve123', 'Jason@Jason.com', '515-123-4567', 'football, writing,Cricket', '2455 Rose Garden Rd, 15220,  Pittsburgh, PA, US'); 
INSERT INTO USERINFO ( USERNAME, PASSWORD, EMAIL, PHONE, HOBBIES,ADDRESS ) VALUES ( 'Neena', 'neena88', 'Neena@Neena.com', '515-123-4568', 'foot ball, guitarist', '1812 Timberline Rd, 16601,  Altoona   , PA, US'); 
INSERT INTO USERINFO ( USERNAME, PASSWORD, EMAIL, PHONE, HOBBIES,ADDRESS ) VALUES ( 'Lex  ', 'Lex001', 'Lex@email.com', '515-123-4569', 'reading', '2899 Grand Ave, 15225,  Pittsburgh, PA, US'); 
INSERT INTO USERINFO ( USERNAME, PASSWORD, EMAIL, PHONE, HOBBIES,ADDRESS ) VALUES ( 'David', 'dav007', 'David@email.com', '590-423-4569', 'base ball, cricket, music', '1126 Pawlings Rd, 19403,  Norristown, PA, US'); 
INSERT INTO USERINFO ( USERNAME, PASSWORD, EMAIL, PHONE, HOBBIES,ADDRESS ) VALUES ( 'John ', 'John222', 'John@Johnmail.com', '650-121-2019', ' baseball', '354 N Prince St, 17603,  Lancaster, PA, US'); 

commit;

-- Procedure to check the email format. This accepts Email ids of 
-- abc123@xyz.com format. 
-- The ([a-z]+|[0-9]+)@[[:alpha:]]+[.]COM pattern is useful in 
-- identifying if the email id is of xyz123@abc.com format.
CREATE OR REPLACE PROCEDURE check_email (email IN VARCHAR2 ) AS
isValid BOOLEAN;
BEGIN
  IF ( Email IS NOT NULL ) THEN
  	isValid := REGEXP_LIKE( Email ,'([a-z]+|[0-9]+)@[[:alpha:]]+[.]COM','i' );    
 	 IF ( NOT isValid  )  THEN
      raise_application_error(-20101, 'E-Mail id should be of abc@xyz.com format');
  	 END IF ; 
  ELSE
    raise_application_error(-20102, 'E-Mail id can not be NULL');    
  END IF;
END;

-- Create a trigger that validates the phone number. The regular expression 
-- ([[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4} uses the POSIX representation 
-- to check the correctness of phone numbers entered. [[:digit:]]{3} indicates 
-- occurrence of any numeric value 3 times. It accepts values only of 
-- type 123-123-1234 
CREATE OR REPLACE TRIGGER validateUser BEFORE INSERT OR UPDATE ON userinfo FOR EACH ROW 
DECLARE 
isValid BOOLEAN;
BEGIN
  IF ( :NEW.phone IS NOT NULL ) THEN
   isValid := REGEXP_LIKE(:NEW.phone,'^([[:digit:]]{3}-[[:digit:]]{3}-[[:digit:]]{4})$');
 	 IF ( NOT isValid  )  THEN
      raise_application_error(-20110, 'Phone number should be of 123-123-1234 format');
  	 END IF ; 
  ELSE
    raise_application_error(-20111,'Phone number can not be NULL');    
  END IF;

-- Validate the email id entered. 
check_email(:NEW.email);
END;
 
分享到:
评论

相关推荐

    SQL、T-SQL与PL-SQL的区别

    SQL、T-SQL与PL-SQL的区别 SQL(Structured Query Language)是结构化查询语言,是负责与ANSI(美国国家标准学会)维护的数据库交互的标准语言。它是关系数据库的标准语言,已被众多商用DBMS产品所采用,使得它已...

    Allround_Automations_PL-SQL_Developer__Language_Packs_Downloadly.ir.rar

    描述中提供的信息简洁,与标题相同,仅给出了文件名,暗示这是一个压缩包,包含与PL-SQL Developer相关的语言包,可能支持多种语言界面,方便不同地区的用户使用。 标签"Delphi"表明该软件可能与Embarcadero Delphi...

    完全自动的正则表达式编写工具

    PLSQL.jgcscs、PHPsolo.jgcscs、Ruby.jgcscs分别对应Oracle的PL/SQL、PHP和Ruby语言的正则表达式配置,确保在这些语言中使用的正则表达式能够准确无误地工作。 总的来说,这个“完全自动的正则表达式编写工具”是一...

    ORACLE.PLSQL正则表达式概述

    ORACLE.PLSQL中支持多种与正则表达式相关的内置函数,这些函数可以帮助开发者进行字符串的搜索、替换和验证。主要函数包括: - **REGEXP_LIKE**: 用于检查一个字符串是否符合指定的正则表达式模式。 - **REGEXP_...

    PL-SQL.zip

    在【标题】"PL-SQL.zip"中,我们看到这是一个与PL-SQL相关的压缩文件。通常,这样的压缩包可能包含用于学习、开发或管理Oracle数据库的资源,比如文档、教程、密钥、安装程序等。"PL-SQL.zip里有密钥"可能指的是该...

    PL/SQL经典介绍

    第一章 PL-SQL一览 ...第七章 PL-SQL与Oracle间交互 第八章 控制PL-SQL错误 第九章 PL-SQL子程序 第十章 PL-SQL包 第十一章 PL-SQL对象类型 第十二章 本地动态SQL 第十三章 PL-SQL应用程序性能调优

    PL-SQL.rar_pl sql_pl sql 操作_存储过程

    PL-SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库的一种扩展,它将SQL(结构化查询语言)与过程式编程语言相结合,为数据库管理提供了更强大的功能。在PL-SQL中,你可以编写复杂的...

    oracle正则表达式

    在Oracle数据库中,正则表达式是一种非常强大的工具,用于匹配字符串模式,并在SQL查询或PL/SQL程序中执行复杂的文本处理任务。与大多数编程语言中的正则表达式相似,Oracle提供了自己的一套正则表达式函数,允许...

    PL-SQL用戶指南與參考

    《PL-SQL用户指南与参考》是一份详尽的中文PDF文档,总计12章,包含312页,旨在帮助读者深入理解并熟练掌握Oracle数据库中的PL/SQL编程语言。PL/SQL,即Procedural Language/Structured Query Language,是Oracle...

    PL-SQL 帮助文件 PL-SQL 帮助文件

    PL-SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库系统中的一种扩展的SQL语言,它结合了SQL的查询能力与编程语言的控制结构,使得开发者能够编写存储过程、函数、触发器等复杂数据库...

    PL-SQL编程.ppt

    PL-SQL编程.ppt PL-SQL编程.pptPL-SQL编程.ppt

    PL-SQL讲义

    这使得PL-SQL既能处理逻辑,又能与数据交互。 5. **存储过程与函数** 存储过程是一组预编译的PL-SQL语句,可以在需要时调用,提高效率并减少网络传输。函数则返回一个值,可以作为表达式的一部分使用。 6. **游标...

    PL-SQL详解

    #### PL-SQL概览与重要性 PL-SQL,全称Procedural Language for SQL,是Oracle数据库系统为了增强SQL语言的功能而设计的一种过程化语言。相较于传统的SQL,PL-SQL引入了变量、常量、条件语句、循环控制以及异常处理...

    Oracle.PL-SQL.Programming,4th.Ed.chm

    "Oracle.PL-SQL.Programming,4th.Ed.chm"是一个关于Oracle PL/SQL编程的第四版电子书,采用CHM(Microsoft编写的帮助文档)格式。该资源来自O'Reilly出版社,它以详尽和深入的方式介绍了Oracle数据库的PL/SQL编程...

    db2 创建正则表达式函数

    创建自定义正则表达式函数,可以使用SQL PL(SQL过程语言)编写存储过程。这个过程通常涉及以下步骤: 1. **创建函数原型**:定义函数的输入参数和返回类型。例如,创建一个接受两个参数(待匹配字符串和正则表达式...

    PL-SQL

    PL-SQL(Procedure Language for SQL)是Oracle数据库提供的一种过程化语言,它将SQL语句与传统的编程语言相结合,允许在数据库内部执行复杂的数据处理逻辑。通过将SQL和控制流结构结合在一起,PL-SQL提供了更强大的...

    pl-sql-dev-8-setup PL/SQL developer 8 的安装文件

    pl-sql-dev-8-setup PL/SQL developer 的安装文件 另外还有它的注册机 和 简体中文包 都在我的资源中 我的刚解决 所以免费贴出来和大家分享

    Oracle的PL-SQL编程手册

    Oracle的PL-SQL编程是数据库管理员和开发人员在构建高效、可维护的Oracle数据库应用程序时不可或缺的工具。PL/SQL,全称为Procedural Language/Structured Query Language,是Oracle数据库支持的一种过程化语言,它...

    Oracle-Pl-Sql.rar

    在“Oracle-PL-Sql.rar”这个压缩包中,包含了一系列的PPT课件,这些课件可能涵盖了PL/SQL的基础知识和进阶主题,适合初学者入门学习。以下是可能涉及的一些关键知识点: 1. **PL/SQL基础语法**:这包括变量声明、...

Global site tag (gtag.js) - Google Analytics