T-SQL中执行sql语句的两种写法


在存储过程中执行sql语句的两种写法:


1、直接在存储过程中写DML语句,如

SELECT * INTO lv_response  FROM DBA.Device FOR XML RAW ;


2、根据条件动态拼写出sql语句,如

    SET lv_sql = 'SELECT * INTO  lv_response  FROM DBA.Device FOR XML RAW' ;
    EXECUTE IMMEDIATE lv_sql ;


记录一下,贴出完整小例子例子

ALTER PROCEDURE "DBA"."ws_justsy_execute_pro"()

BEGIN
	DECLARE lv_sql          LONG VARCHAR ;
    DECLARE lv_response     XML ;

--    SELECT * INTO lv_response  FROM DBA.Device FOR XML RAW ;

    SET lv_sql = 'SELECT * INTO  lv_response  FROM DBA.Device FOR XML RAW' ;
    EXECUTE IMMEDIATE lv_sql ;
    CALL DBA.web_response('',lv_response) ;
END


数据统一输入出口

ALTER PROCEDURE "DBA"."web_response"(
    IN  p_encoded   VARCHAR(10),
    IN  p_response  XML 
)
RESULT( response XML ) 
BEGIN
    DECLARE lv_response     XML ;
    SET lv_response = XMLELEMENT('root',p_response) ;
    INSERT INTO DBA.ml_temp(PFName,PFValue) VALUES('web_response',lv_response) ;
	IF(p_encoded IS NOT NULL AND p_encoded = '64') THEN
        SELECT BASE64_ENCODE(p_response) ;
    ELSE
        SELECT lv_response ;
    ENDIF;
END

执行
CALL "DBA"."ws_justsy_execute_pro"() ;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值