shell - 为什么在 shell 脚本中运行时游标语句在 isql(sybase) 中不起作用
问题描述
当我尝试从 shell 脚本运行以下 SQL 查询时,没有得到任何输出。
#!/usr/bin/sh
. /apps/sybase/15.0.2/SYBASE.sh
SYBASE_OCS=OCS-15_0
isql=$SYBASE/$SYBASE_OCS/bin/isql
$isql -b -S"dataserver" -U"user" -P"pwd" -D"XXX" -s"," -w2000 -Jroman9 <<EOF >>output.txt
create table #tmp1 (ID_CLIENT varchar(20),ID_VALUE varchar(4))
GO
insert into #tmp1 values ('1029075','10')
GO
DECLARE curs CURSOR FOR
SELECT ID_CLIENT,ID_VALUE from #tmp1
GO
DECLARE @ID1 varchar(20),
@ID2 varchar(5)
OPEN curs
FETCH NEXT curs INTO @ID1,@ID2
WHILE @@sqlstatus = 0
BEGIN
PRINT '* ID_CUTT_OFF: %1! ', @ID1
EXEC BAU_U_2 'XXXX','XXXXXX','MIL',@ID1,@ID2,'FLH-123456'
FETCH NEXT curs INTO @ID1,@ID2
END
CLOSE curs
DEALLOCATE CURSOR curs
GO
EOF
仅在该游标语句未执行之后才执行插入语句。但如果我在 SQL 浏览器上运行它,则相同的代码正在工作。您能否让我知道如何从 shell 脚本执行此操作。
解决方案
你的最后一个go
前面似乎有 2 个空格。
go
前面必须没有空格,即go
必须从第 1 列开始。
推荐阅读
- python-3.x - UnicodeDecodeError:读取语言环境配置文件
- batch-file - 批处理脚本问题 - 如何转换日期或建议任何逻辑以满足给定代码中的 IF 语句要求?
- python - 在 srt/txt 文件的内容和可滚动文本框 (Tkinter) 之间查找/匹配错误
- ruby-on-rails - 如何反序列化在控制器中作为 JSON 字符串接收的参数?
- python - 如何做正则表达式从 HTML 文件中提取字符串
- python - pd.Series.cat.as_ordered() 在 Pandas 中做了什么?
- mysql - MySQL为某个c中的每种类型选择一定数量的行
- r - 将 R 数据帧转换为向量列表
- java - JAVA 按列排序 CSV 文件,然后按日期列正确排序
- nestjs - 如何取消订阅 NestJS 中的所有订阅?