--注意:脚本只能执行一次,不能执行多次
IF OBJECT_ID(N'dbo.RegexReplace') IS NOT NULL
DROP FUNCTION dbo.RegexReplace
GO
CREATE FUNCTION dbo.RegexReplace
(
@string VARCHAR(MAX), --被替换的字符串
@pattern VARCHAR(255), --替换模板
@replacestr VARCHAR(255), --替换后的字符串
@IgnoreCase INT = 0 --0区分大小写 1不区分大小写
)
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @objRegex INT, @retstr VARCHAR(8000)
--创建对象
EXEC sp_OACreate 'VBScript.RegExp', @objRegex OUT
--设置属性
EXEC sp_OASetProperty @objRegex, 'Pattern', @pattern
EXEC sp_OASetProperty @objRegex, 'IgnoreCase', @IgnoreCase
EXEC sp_OASetProperty @objRegex, 'Global', 1
--执行
EXEC sp_OAMethod @objRegex, 'Replace', @retstr OUT, @string, @replacestr
--释放
EXECUTE sp_OADestroy @objRegex
RETURN @retstr
END
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
IF OBJECT_ID ( 'tester2', 'P' ) IS NOT NULL
DROP PROCEDURE tester2;
GO
CREATE PROCEDURE tester2
AS
BEGIN
DECLARE Employee_Cursor CURSOR FOR
SELECT tableName FROM MD_TreeTableStruct WHERE Type = '1';
DECLARE @tableName1 varchar(50);
OPEN Employee_Cursor;
FETCH NEXT FROM Employee_Cursor INTO @tableName1;
WHILE @@FETCH_STATUS = 0
BEGIN
print @tableName1;
exec('update ' + @tableName1 + ' set innerCode = dbo.RegexReplace (innercode, ''([0-9][0-9][0-9])'',''00$1'',0)');
FETCH NEXT FROM Employee_Cursor INTO @tableName1;
END;
CLOSE Employee_Cursor;
DEALLOCATE Employee_Cursor;
END
GO
exec tester2;
GO
分享到:
相关推荐
在数据库管理中,存储过程(Stored Procedure)和自定义函数(User-defined Function)是两种非常重要的编程元素,尤其在SQL Server数据库系统中被广泛应用。它们是数据库开发人员用来提高性能、增强安全性和简化...
这个文件名可能是表示一个特定的供应链管理相关的报告(SCM)的存储过程,创建于2004年9月1日。这个存储过程可能用于生成特定的业务报告,如库存分析、销售报告等。它可能会通过接收日期范围或其他参数来筛选特定的...
总而言之,"SQL SERVER数据库开发之存储过程应用"教程会涵盖以上这些核心概念,并可能深入到高级主题,如动态SQL、游标、异常处理、临时表和变量的使用等。通过学习和实践,开发者可以提升在SQL Server环境下的...
在这个例子中,`Execute`方法将返回一个记录集对象,我们可以进一步处理这个记录集以获取存储过程的结果。 #### 三、异常处理 为了确保程序的健壮性,我们还需要考虑异常处理。可以使用`On Error GoTo ErrHandler`...
Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...
存储过程是数据库管理系统中的一个重要概念,它是预先编译好的一组SQL语句,可以在需要时被调用执行,以实现特定的功能。本文将深入探讨存储过程的基本知识、功能、优点以及分类,并展示如何在SQL Server中创建存储...
在本例中,“添加用户使用存储过程”是一个教学示例,旨在教授如何通过存储过程来创建新的用户记录。下面将详细解释存储过程的基本概念、优点,以及如何编写一个用于添加用户的存储过程。 **存储过程的基础知识:**...
例如,`INSERT_SYS_EMPEE_SEGMENT_GRID.sql`文件可能是一个创建存储过程的脚本,用于向特定的表(如“sys_emp_segment_grid”)插入员工分段网格数据。这个过程可能会接受参数,如员工ID、网格信息等,并使用这些...
总结,这个例子中展示了Oracle存储过程的基本结构,包括包的创建、过程的定义、游标的使用、条件判断、动态SQL以及异常处理。这些都是在Oracle数据库环境中编写高级逻辑和数据操作时不可或缺的技能。通过理解和实践...
在这个例子中,`@intUserId`是输入参数,`@ostrUserName`是输出参数,输出参数允许存储过程向调用者返回信息。 在应用程序中调用存储过程,如在ASP环境中,可以使用ADODB.Command对象: ```vbscript Dim adoComm ...
存储过程是数据库中的一个对象,由一系列的SQL语句组成,可以在服务器端执行。它们可以接收参数,返回结果集,并且可以用来封装复杂的业务逻辑。在C#中调用存储过程通常涉及以下步骤: 1. **建立数据库连接**:使用...
以下是一个简单的C#结合SQL Server的分页存储过程的例子: 1. 创建存储过程: 在SQL Server Management Studio中,编写如下的存储过程,这个过程接收两个参数:@PageIndex表示当前页号,@PageSize表示每页显示的...
本文将详细解析如何在C#中调用SQL Server的存储过程,并通过一个具体示例来深入理解这一操作的关键步骤。 ### 标题解析:C#调用存储过程简单完整例子 标题明确指出了文章的主题——使用C#来调用存储过程。存储过程...
在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。 首先,`c.sql`、`b.sql`和`student.sql`可能是包含存储过程定义的脚本文件。这些...
在IT行业中,数据库管理和开发是不可或缺的部分,而存储过程作为数据库中的一个重要概念,扮演着提升性能、封装复杂逻辑和提供安全性的角色。本示例是一个针对初学者的C#编程结合VS2010(Visual Studio 2010)与SQL ...
例如,一个简单的增删改查操作的存储过程可能如下: ```sql CREATE OR REPLACE PROCEDURE insert_user (p_name IN VARCHAR2, p_age IN NUMBER) AS BEGIN INSERT INTO users (name, age) VALUES (p_name, p_age)...
接着,我们定义了一个名为carl_sp_test的存储过程,它接受一个输入参数v_monthly和两个输出参数last_inserted_rows_num与all_effected_rows_num。这个存储过程首先清空carl_test表,然后将输入参数插入到carl_test表...
存储过程是数据库中预编译的SQL语句集合,它是一种可重复使用的...通过这些示例,我们可以理解存储过程在数据库管理和应用程序开发中的重要性,它们简化了数据库操作,提高了性能,同时提供了安全性和代码组织的便利。
这个例子展示了如何创建一个名为 `sp_EmployeeDetails` 的存储过程,它接受一个整数参数 `@EmployeeID` 并返回相应的员工记录。 ##### 2.2 应用存储过程 存储过程的应用非常广泛,可以从简单的数据查询到复杂的...