各位大虾,oracle8.05中取表中一个字段!该字存的是SQL语句,我要在oracle脚本中执行

johnage 2001-07-25 11:14:00
...全文
429 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnage 2001-07-29
  • 打赏
  • 举报
回复
我要给分了!
rjcludy 2001-07-27
  • 打赏
  • 举报
回复
to johnage(湘军) 
你在SQL Worksheet 中运行
set echo off;
看看会不会出错
要是会那我也没办法,
(要是条件允许,重装一次看看)
johnage 2001-07-27
  • 打赏
  • 举报
回复
怎么没有回答我
johnage 2001-07-26
  • 打赏
  • 举报
回复
zhuzhichao和rjcludy()
你们好!
你们的我都试过,就是通不过!报“无效SQL!”
oracle8.05中取表中一个字段!该字存的是SQL语句,我要执行这SQL,它返回的是手机号码!
可能有多条!我要一条一条取!然后插入另一张表!我想做源表触发器中!


rjcludy 2001-07-25
  • 打赏
  • 举报
回复
先的用下语句定义输出变量(多个的话的定义多个)
DBMS_SQL.DEFINE_COLUMN(vn_cur,1,vs_col_value,200); --vs_col_value 输出变量
rjcludy 2001-07-25
  • 打赏
  • 举报
回复
vn_count := DBMS_SQL.EXECUTE(vn_cur);
vn_count := dbms_sql.fetch_rows(vn_cur);
DBMS_SQL.COLUMN_VALUE(vn_cur,1,vs_col_value);
就是把值传给vs_col_value
johnage 2001-07-25
  • 打赏
  • 举报
回复
up
johnage 2001-07-25
  • 打赏
  • 举报
回复
UP
johnage 2001-07-25
  • 打赏
  • 举报
回复
并且要把执行结果传出去!各位我没有用过oracle请多多指教!
rjcludy 2001-07-25
  • 打赏
  • 举报
回复
用:
vs_sql:='select 字段 from table where 字段 = :an_kkk';
vn_cur := dbms_sql.open_cursor;
DBMS_SQL.PARSE(vn_cur,vs_sql,DBMS_SQL.V7);
DBMS_SQL.DEFINE_COLUMN(vn_cur,1,vs_col_value,200); --vs_col_value 输出变量
DBMS_SQL.BIND_VARIABLE(vn_cur,':an_kkk',an_kkk'); --
vn_count := DBMS_SQL.EXECUTE(vn_cur);
vn_count := dbms_sql.fetch_rows(vn_cur);
DBMS_SQL.COLUMN_VALUE(vn_cur,1,vs_col_value);
DBMS_SQL.CLOSE_CURSOR(vn_cur);
wangsw 2001-07-25
  • 打赏
  • 举报
回复
我写的是T-SQL(SQL SERVER),不过你的PL/SQL应也有同样的功能吧,没有吗??
要想执行字符串,只有用动态SQL!!
不过,在表中到那一行的记录如果没有适合的条件,不好弄,你的有唯一记录的条件吗??

zhuzhichao 2001-07-25
  • 打赏
  • 举报
回复
給你一個過程.將你的字段中的值作為一個變量傳進來.

PROCEDURE tr_executesql (sqlstring IN VARCHAR2) AS
cid NUMBER;
numrows integer;
BEGIN
/* Open new cursor and return cursor ID. */
cid := DBMS_SQL.OPEN_CURSOR;
/* Parse and immediately execute dynamic SQL statement. */
DBMS_SQL.PARSE(cid, sqlstring, DBMS_SQL.V7);
numrows := DBMS_SQL.EXECUTE(cid);
/* Close cursor. */
DBMS_SQL.CLOSE_CURSOR(cid);
EXCEPTION
/* If an exception is raised, close cursor before exiting. */
WHEN OTHERS THEN
DBMS_SQL.CLOSE_CURSOR(cid);
RAISE; -- reraise the exception
END tr_executesql;
johnage 2001-07-25
  • 打赏
  • 举报
回复
我要在oracle数据库脚本中执行,触发器,或者是过程。PL/SQL
wangsw 2001-07-25
  • 打赏
  • 举报
回复
oracle脚本???什么意思??
johnage 2001-07-25
  • 打赏
  • 举报
回复
我要在oracle脚本中执行
wangsw 2001-07-25
  • 打赏
  • 举报
回复
string sql
select column into :sql from table ;
execute immediate :sql
ok!
wangsw 2001-07-25
  • 打赏
  • 举报
回复
用动态SQL
cdy516 2001-07-25
  • 打赏
  • 举报
回复
declare @sql varchar(1000)
@sql = '..........'
execute @sql
zhuzhichao 2001-07-25
  • 打赏
  • 举报
回复
我也是8.05就是好的.
我在SQL Worksheet中run的.
johnage 2001-07-25
  • 打赏
  • 举报
回复
办法???
加载更多回复(35)

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧