内容如下:
if exists(select * from sysobjects where name='SYCONFIG' and type='U')
drop table SYCONFIG
create table SYCONFIG
(F_KEY char(16) not null,
F_VALUES char(255) default '',
F_NOTE char(60) null)
;
create unique index SYCONFIG on SYCONFIG(F_KEY)
;
insert into SYCONFIG
values('001','Y');
insert into SYCONFIG
values('002','Y');
问题是在PB中怎样执行SQL文件,在数据库里建表,并向表中插入数据?在pb中调用建立数据库的SQL行不行,该如何解决?如何读取多个*.sql文件的内容并执行它。
14 个解决方案
#1
pb一次只能执行一行动态sql
execute immediate :ls_sql using transaction就可以了
执行sql文件好象不可以,那是dbms提供的功能,非标准
你只能从sql文件中读取sql,然后按照';'分解成sql串执行.
记得一个sql文件一定在一个事务里执行.
execute immediate :ls_sql using transaction就可以了
执行sql文件好象不可以,那是dbms提供的功能,非标准
你只能从sql文件中读取sql,然后按照';'分解成sql串执行.
记得一个sql文件一定在一个事务里执行.
#2
如果后台是ms sql server 如何执行*.sql文件,具体说明一下好吗?如何读取*.sql文件,读一行,怎么读?
#3
你把*.sql文件写到字符串变量中
string sql
sql=''
execute immediate :sql;
string sql
sql=''
execute immediate :sql;
#4
呵呵,只要你把sql文件运行在SQL server上,生成一个存储过程。然后可以在PB中调用它,格式为:
Declare psjfx Procedure For p_sjfxcl_preview_a
@l_startdate=:l_startdatetime,@l_enddate=:l_enddatetime;
Execute Psjfx;
其中p_sjfxcl_preview_a为存储这程的名字,两个@为两个传递参数。
Declare psjfx Procedure For p_sjfxcl_preview_a
@l_startdate=:l_startdatetime,@l_enddate=:l_enddatetime;
Execute Psjfx;
其中p_sjfxcl_preview_a为存储这程的名字,两个@为两个传递参数。
#5
用pb把文本文件导入变量ls_sql 变以下 ls_sql='exec('+ls_sql+')'
在pb总动态执行此 ls_sql (只限于sqlserver)
在pb总动态执行此 ls_sql (只限于sqlserver)
#6
你把*.sql文件内容写到字符串变量中 ls_sql
ls_sql='exec('+ls_sql+')'
execute immediate :sql
(只限于sqlserver )
ls_sql='exec('+ls_sql+')'
execute immediate :sql
(只限于sqlserver )
#7
csdn就没高手吗
#8
胡说,上面的方法都不错
#9
synix(软件蓝领) ( ) 信誉:100 2003-09-19 14:25:00 得分:0
csdn就没高手吗
真怀疑你的4个角是怎么来的!!!
csdn就没高手吗
真怀疑你的4个角是怎么来的!!!
#10
gz
#11
up
#12
up
#13
可以使用 "kernel32" 中的winexec()来执行一个文件。
#14
前面回答都文不对题. 我也在找执行SQL文本文件的方法,关注!
#1
pb一次只能执行一行动态sql
execute immediate :ls_sql using transaction就可以了
执行sql文件好象不可以,那是dbms提供的功能,非标准
你只能从sql文件中读取sql,然后按照';'分解成sql串执行.
记得一个sql文件一定在一个事务里执行.
execute immediate :ls_sql using transaction就可以了
执行sql文件好象不可以,那是dbms提供的功能,非标准
你只能从sql文件中读取sql,然后按照';'分解成sql串执行.
记得一个sql文件一定在一个事务里执行.
#2
如果后台是ms sql server 如何执行*.sql文件,具体说明一下好吗?如何读取*.sql文件,读一行,怎么读?
#3
你把*.sql文件写到字符串变量中
string sql
sql=''
execute immediate :sql;
string sql
sql=''
execute immediate :sql;
#4
呵呵,只要你把sql文件运行在SQL server上,生成一个存储过程。然后可以在PB中调用它,格式为:
Declare psjfx Procedure For p_sjfxcl_preview_a
@l_startdate=:l_startdatetime,@l_enddate=:l_enddatetime;
Execute Psjfx;
其中p_sjfxcl_preview_a为存储这程的名字,两个@为两个传递参数。
Declare psjfx Procedure For p_sjfxcl_preview_a
@l_startdate=:l_startdatetime,@l_enddate=:l_enddatetime;
Execute Psjfx;
其中p_sjfxcl_preview_a为存储这程的名字,两个@为两个传递参数。
#5
用pb把文本文件导入变量ls_sql 变以下 ls_sql='exec('+ls_sql+')'
在pb总动态执行此 ls_sql (只限于sqlserver)
在pb总动态执行此 ls_sql (只限于sqlserver)
#6
你把*.sql文件内容写到字符串变量中 ls_sql
ls_sql='exec('+ls_sql+')'
execute immediate :sql
(只限于sqlserver )
ls_sql='exec('+ls_sql+')'
execute immediate :sql
(只限于sqlserver )
#7
csdn就没高手吗
#8
胡说,上面的方法都不错
#9
synix(软件蓝领) ( ) 信誉:100 2003-09-19 14:25:00 得分:0
csdn就没高手吗
真怀疑你的4个角是怎么来的!!!
csdn就没高手吗
真怀疑你的4个角是怎么来的!!!
#10
gz
#11
up
#12
up
#13
可以使用 "kernel32" 中的winexec()来执行一个文件。
#14
前面回答都文不对题. 我也在找执行SQL文本文件的方法,关注!