oracle怎么自定义变量再拼接字符串执行

zzyhost 2016-05-06 10:42:05
create tablespace TB_YFYK datafile 'E:\tablespace\TB_YFYK.dbf' size 200m ................

举个例子,我想把上面的路径 E:\tablespace\ 定义成一个变量(比如dic),然后把这条创建语句改成

create tablespace TB_YFYK datafile dic || TB_YFYK.dbf' size 200m ................

我写的不一定对就是想表达这个意思,怎么定义变量再拼接字符串创建这个表空间呢?

我要用plsql 执行
...全文
1151 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
建议做个视图,把路劲放在视图里面 create view view_file as select 'D:\app\Administrator\oradata\orcl' as file1 from dual; select 'create tablespace tb_name file '''||file1||'db1.dbf'||'''' from view_file;
永远都学不完 2016-05-08
  • 打赏
  • 举报
回复
批量制作脚本也可以使用UE,有一个列模式,可以直接复制EXCEL中的一列过来。
zzyhost 2016-05-07
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
可以使用动态 SQL 执行,但是创建表空间这样的操作,为什么要动态呢?
因为要创建很多表空间,我不可能一个字一个字敲进去,我肯定把以前写过的代码copy过来修改一下路径就行了,比如我要创建10个表空间我得修改10次路径,万一疏忽改错了容易把原先的表空间覆盖掉
卖水果的net 2016-05-07
  • 打赏
  • 举报
回复
可以使用动态 SQL 执行,但是创建表空间这样的操作,为什么要动态呢?
卖水果的net 2016-05-07
  • 打赏
  • 举报
回复
覆盖不了,重名就报错了;

-- 动态生成吧 

SQL> with m as (
  2  select 'TS01' name from dual union
  3  select 'TS02' from dual union
  4  select 'AK' from dual
  5  )
  6  select 'create tablespace ' || name || ' datafile ''c:\' || name || '.dbf'' size 100m;' s
  7  from m
  8  /
S
--------------------------------------------------------
create tablespace AK datafile 'c:\AK.dbf' size 100m;
create tablespace TS01 datafile 'c:\TS01.dbf' size 100m;
create tablespace TS02 datafile 'c:\TS02.dbf' size 100m;


17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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