SQL EXEC的结果赋给变量

exec的结果无法直接赋值给变量,可以先把结果插入到临时表,再select出来  

insert into #tmpEndTime
 exec sp_executesql @sql,N'@a nvarchar(100) output',@a output

select 字段 from  #tmpEndTime
### 将 PL/SQL 查询结果赋值给 Shell 脚本变量 为了实现这一目标,通常会采用如下方法: 通过 `sqlplus` 工具执行 PL/SQL 块并将输出捕获到 Shell 变量中。下面是一个具体的例子来展示如何完成此操作。 #### 使用 sqlplus 和命令替换 可以利用 Linux 的命令替换功能 `$()` 或反引号 `` `...` `` 来获取 SQL*Plus 执行后的标准输出并将其存储在一个 Bash 变量里。 ```bash result=$(echo "SET HEADING OFF; SET FEEDBACK OFF; SELECT column_name FROM table_name;" | sqlplus -s username/password@database) echo $result ``` 这段代码做了几件事情: - 设置了无提示模式 `-s` 避免不必要的输出; - 关闭表头 (`HEADING`) 和反馈消息 (`FEEDBACK`); - 发送了一个简单的查询语句至数据库连接字符串指定的目标实例上运行; 对于更复杂的场景,比如当需要调用带有参数的过程或函数时,则可以通过绑定变量的方式传递输入参数以及接收返回值。 #### 复杂情况下的处理方式 如果要从存储过程获得单个 OUT 参数作为结果,那么可以在匿名 PL/SQL 块内定义局部变量用于保存该参数的值,并最终打印出来供外部程序读取。 ```plsql variable ret number; exec :ret := package.procedure(:param); print ret; exit; ``` 接着,在 Shell 中同样使用上述提到的方法捕捉这个数值型的结果。 需要注意的是,以上示例假设读者已经安装配置好了 Oracle Instant Client 并设置了环境变量 PATH 包含其路径以便能够正常使用 `sqlplus` 命令工具[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值