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

远程操作建立存储过程

阅读更多

存储过程的建立,操作远程数据库的时候表名最好加入数据实例,通用的建立用

delimiter $$

 

END $$

delimiter;

 

 

 

=====================================================

 

delimiter $$

CREATE  PROCEDURE `PD_CD_CHK`(IN INPARA VARCHAR(1000),

   OUT OUTPARA  VARCHAR(1000))

BEGIN

 DECLARE V_ERRMSG VARCHAR(128);

 DECLARE fid VARCHAR(100);

 DECLARE str VARCHAR(100);

 declare tmpMobile varchar(20) default '' ;

 declare allMobile varchar(255) default '' ;

 DECLARE cntod bigint  DEFAULT 0 ;

 declare cur1 CURSOR FOR SELECT MOBILE FROM financial_sales_prod.tb_userinfo WHERE ISASSIGN is NULL  or ISASSIGN='' ;

 declare CONTINUE HANDLER FOR NOT FOUND SET tmpMobile = NULL;

 declare CONTINUE HANDLER FOR SQLEXCEPTION SET V_ERRMSG = '002';

   OPEN cur1;

    FETCH cur1 INTO tmpMobile;

   WHILE ( tmpMobile is not null) DO

    SET INPARA=tmpMobile;

  IF INPARA IS NULL  THEN

   SET V_ERRMSG ='传入参数错误';

     ELSE

SET fid =(

SELECT

COALESCE (

COALESCE (COALESCE(l2.MOBILE, l4.MOBILE), l6.MOBILE),

l8.MOBILE

) MOBILE

FROM

(

SELECT

MOBILE,

INVITER_INVITATION_CODE

FROM

financial_sales_prod.tb_userinfo aa

WHERE

aa.MOBILE = INPARA

) a LEFT JOIN financial_sales_prod.tb_tele_userinfo l ON a.MOBILE=l.MOBILE

LEFT JOIN financial_sales_prod.tb_userinfo b ON a.INVITER_INVITATION_CODE = b.INVITATION_CODE

LEFT JOIN financial_sales_prod.tb_tele_userinfo l2 ON b.MOBILE=l2.MOBILE

LEFT JOIN financial_sales_prod.tb_userinfo c ON b.INVITER_INVITATION_CODE = c.INVITATION_CODE

LEFT JOIN financial_sales_prod.tb_tele_userinfo l4 ON c.MOBILE=l4.MOBILE

LEFT JOIN financial_sales_prod.tb_userinfo d ON c.INVITER_INVITATION_CODE = d.INVITATION_CODE

LEFT JOIN financial_sales_prod.tb_tele_userinfo l6 ON d.MOBILE=l6.MOBILE

LEFT JOIN financial_sales_prod.tb_userinfo e ON d.INVITER_INVITATION_CODE = e.INVITATION_CODE

LEFT JOIN financial_sales_prod.tb_tele_userinfo l8 ON e.MOBILE=l8.MOBILE

WHERE

    1 = 1  AND (l.ID is   null or l.ID ='')

AND (

(l8.MOBILE IS NOT NULL AND l8.MOBILE !='')

OR (l6.MOBILE IS NOT NULL AND l6.MOBILE !='')

OR (l4.MOBILE IS NOT NULL AND l4.MOBILE !='')

OR (l2.MOBILE IS NOT NULL AND l2.MOBILE !='')

) limit 1

);

IF fid is not null THEN

SET str = fid;

    SELECT ID,TEMID,EMPTYPE INTO @empid ,@temid ,@odtyp  FROM financial_sales_prod.financial_sales_employment WHERE MOBILE=fid;

    IF (@empid IS NOT NULL) OR ( @temid IS NOT NULL) THEN

      SET @cnt = (SELECT COUNT(1) FROM financial_sales_prod.financial_sales_order WHERE MOBILE=INPARA);

      IF @cnt > 0 THEN

     UPDATE financial_sales_prod.tb_userinfo SET RE_ID=str,ISASSIGN='1' WHERE MOBILE=INPARA;

     ELSE

     START TRANSACTION;

    INSERT INTO financial_sales_prod.financial_sales_order(MOBILE, REGISTER_TIME, CUSTOMER_NAME, ISINVEST,ORDER_TYPE,EMP_ID, TEM_ID, CREATED_TIME, ASSIGN_TIME, ISAUTOASSIGN, STATUS) SELECT MOBILE, REG_TIME, NAME, TENDER_STATUS, @odtyp ,@empid, @temid,date(now()) ,date(now()) , '1' ,'1'  FROM financial_sales_prod.tb_userinfo WHERE MOBILE=INPARA;

     SET cntod=cntod+1;

    UPDATE financial_sales_prod.tb_userinfo SET RE_ID=str,ISASSIGN='1' WHERE MOBILE=INPARA;

        IF  V_ERRMSG = '002' THEN

          SET cntod=0;

         ROLLBACK;

        ELSE

         COMMIT;

       END IF;

    END IF;

      END IF;

  ELSE

   SET str = fid;

   SET V_ERRMSG ='仓单不存在!';

    END IF;

  END IF;

        FETCH cur1 INTO tmpMobile;

      END WHILE;

 CLOSE cur1;

SET OUTPARA = cntod;

END $$

delimiter;

 

 需要员工也在邀请关系表中有自己作为客户的邀请关系记录

 

 

 

分享到:
评论

相关推荐

    存储过程跨数据库操作

    要实现存储过程跨数据库操作,首先需要建立一个远程连接。这个远程连接可以使用 SQL Server 企业管理器来建立,也可以使用 SQL 语句来完成定义。建立远程连接的目的是为了使得不同的数据库之间能够进行数据交换和...

    sqlserver存储过程

    #### 设计与创建存储过程 存储过程是SQL Server中预编译的一系列SQL语句,它们存储在数据库中,可通过名称调用,以执行特定任务。几乎任何Transact-SQL代码都可以用来创建存储过程,从而实现复杂逻辑的封装和重用。...

    SqlServerCH创建和管理存储过程PPT学习教案.pptx

    创建存储过程需要注意一些限制,例如不能嵌套创建其他数据库对象,嵌套调用的深度有限,且需要相应的权限才能创建。 执行存储过程通常使用`EXECUTE`或其缩写形式`EXEC`,也可以直接调用存储过程名。执行时可以传入...

    oracle 存储过程 函数 dblink

    #### 二、创建存储过程 根据提供的部分代码示例,我们可以看到一个简单的存储过程`TESTA`被创建: ```sql CREATE OR REPLACE PROCEDURE TESTA( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2 ) AS BEGIN INSERT INTO ...

    数据库存储过程PPT学习教案.pptx

    2. 直接在企业管理器中操作,右键选择要创建存储过程的数据库,然后选择相应的菜单选项创建。 3. 使用Transact-SQL语句,通过`CREATE PROCEDURE`命令来定义存储过程。这个命令允许设置存储过程的名称、参数、权限...

    存储过程,触发器,远程数据库

    在给定的部分内容中,可以看到一个创建存储过程的例子: ```sql create or replace procedure pro_qzld_czw as -- 状态 SQL JQ_CAD_JCJ_JQ begin execute immediate 'truncate table qzld_czw_info'; insert into ...

    C# 导出存储过程 支持模糊查询

    总的来说,使用C#导出存储过程并支持模糊查询,可以大大提高数据库管理工作效率,特别是在远程或安装使用场景下,简化了对存储过程的查找和管理。通过理解并应用上述技术,开发者可以构建更高效、更便捷的数据库工具...

    存储过程总结很全很详细

    4. **远程存储过程**:在远程服务器上执行的存储过程,适用于分布式数据库环境。 5. **扩展存储过程**:由外部编程语言编写,如C、C++等,提供了更强大的功能和灵活性。 #### 四、示例分析 以创建名为`order_tot_...

    存储过程的一些资料

    **格式与创建存储过程** 创建存储过程的语法如下: ```sql CREATE PROCEDURE [所有者.]存储过程名[;程序编号] [(参数#1,...参数#1024)] [WITH{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}] [FOR REPLICATION] ...

    存储过程实用例子

    本文将深入探讨存储过程的基本知识、功能、优点以及分类,并展示如何在SQL Server中创建存储过程。 1. 存储过程基本知识 存储过程是SQL Server应用程序与数据库交互的一种方式。它不同于简单的SQL查询,因为它可以...

    SQLServer存储过程在系统开发中的应用

    4. **远程存储过程**:用于访问远程服务器上的数据,可以跨越多个服务器执行操作。 5. **扩展存储过程**:通过外部编程语言(如 C 或 C++)编写,并以 DLL 形式加载到 SQL Server 中。扩展存储过程能够实现更复杂的...

    Oracle存储过程、函数和包

    - **权限需求**:创建存储过程需要`CREATE PROCEDURE`或`CREATE ANY PROCEDURE`权限。 - **基本语法**: ```sql CREATE [OR REPLACE] PROCEDURE 存储过程名 [(参数 [IN|OUT|INOUT] 数据类型)] {AS | IS} [说明...

    sql_server_2000,2005_存储过程解密过程

    接下来,需要创建一个名为`sp_windbi$decrypt`的特殊存储过程来执行解密操作。此存储过程的代码如下所示: ```sql CREATE PROCEDURE [dbo].[sp_windbi$decrypt] (@procedure sysname = NULL, @revfl int = 1) AS ...

    INFORMIX最新实用存储过程编写.doc

    在编写存储过程时,你需要掌握一系列SQL语句,如数据定义(DDL)用于创建表等结构,数据操作(DML)用于CRUD(创建、读取、更新、删除)操作,指针操作用于游标处理,动态管理命令用于资源管理,数据访问语句(DCL)...

    cusor的使用以及函数的创建和存储过程

    - **远程存储过程**,用于调用其他服务器上的存储过程。 - **扩展存储过程**,通常用C语言编写,可以访问操作系统级别的资源。 4. **存储过程的基本语法:** ```sql CREATE PROCEDURE [dbo].[procedure_name] ...

    SQL存储过程.

    - 在数据库中找到存储过程节点,右键选择“创建存储过程”选项。 - 在新弹出的窗口中编写存储过程代码。 - 输入参数和输出参数。 - 执行的SQL语句。 - 返回的状态值。 示例步骤图示未给出,但以上步骤是基本...

    SqlServerCH创建和管理存储过程学习教案.pptx

    创建存储过程时需要注意,不能与其他SQL语句混用,不能在过程中创建视图等对象,而且必须具有相应的权限(如系统管理员、数据库所有者或数据定义语言管理角色)。 执行存储过程使用`EXECUTE`或`EXEC`命令,可以传递...

    SQL2005与Sql2008 存储过程解密方法

    - 在实际操作中,应确保了解DAC连接的安全风险以及存储过程解密的操作细节,避免造成不可挽回的数据损失。 以上内容详细介绍了如何使用DAC连接以及如何解密存储过程,这对于SQL Server管理员来说是非常实用的知识点...

    VB.NET中调试存储过程

    通过建立数据库连接,如连接到Northwind数据库,可以在SQL Explorer中找到并选择要调试的存储过程。例如,要调试Sales By Year存储过程,需要输入参数值,然后通过"Step Into Stored Procedure"开始调试。调试过程中...

    SqlServerCH创建和管理存储过程PPT课件.pptx

    - 创建存储过程需要相应的权限,如系统管理员、数据库所有者或数据定义语言管理角色。 创建存储过程的示例: ```sql CREATE PROCEDURE simpleProcDemo AS SELECT * FROM student_table ``` 执行存储过程的语法是:...

Global site tag (gtag.js) - Google Analytics