当前位置: 首页 > 面试题库 >

ORACLE如何将假脱机与动态假脱机位置一起使用

终彬郁
2023-03-14
问题内容

好的,所以我对oracle完全满意。现在,这已经不复存在了;

我认为您可以了解我在下面尝试做的事情。对于找到的每个存储过程,将DDL输出到具有其名称的文件名。

问题是我不知道如何获取假脱机目标来拾取由游标设置的FileName的值。

DECLARE 
objName varchar2(50);
FileName varchar2(50);

cursor curProcs is
    select OBJECT_NAME into objName
      FROM ALL_PROCEDURES WHERE OWNER = 'AMS' 
      ORDER BY OBJECT_NAME; -- get all procs in db
BEGIN
open curProcs;
  if curProcs%ISOPEN THEN
   LOOP
    FETCH curProcs into objName;
    EXIT WHEN curProcs%NOTFOUND;
    FileName := 'C:\ ' || objName || '.PRC.SQL';
    spool FileName; --BREAKS
     DBMS_METADATA.GET_DDL('PROCEDURE',objName);
    spool off;
   END LOOP;
  END IF;
END;

关于我要去哪里错的任何想法吗?如果有人举这个例子,我将不胜感激。

我觉得我必须在周围跳舞,因为如果我最初创建一列,

spool &ColName

我得到一个结果,我似乎无法动态地更改&colname

谢谢你的帮助。


问题答案:

SPOOL是SQL Plus指令,您不能将其混入PL / SQL匿名块中。 如果要纯粹在SQL Plus中 执行此操作
,我认为一般想法是分两步进行处理,即使用第一个脚本动态地将假脱机文件名引用生成到第二个脚本中,该第二个脚本实际上进行dbms_metadata调用。

[编辑]

This should be close to what you need - maybe a line termination problem, depending on your platform:

    set pagesize 0
    set linesize 300
    spool wrapper.sql
    select
    'spool '||object_name||'.sql'||chr(10)||
    'begin 
    dbms_metadata.get_ddl('||chr(39)||object_type||chr(39)||','||chr(39)||object_name||chr(39)||')'||' end;'||chr(10)||
    '/'||chr(10)||
    'spool off'
    from user_objects
    where object_type = 'PROCEDURE'
;
spool off


 类似资料:
  • 在SQLcl中,将spool设置为file会出现错误“SP2-0556:文件名无效”。文件名中没有空格,路径正确(文件夹C:\Temp确实存在)。已经尝试过; 在Win10、OracleXE11上使用SQLcl 17.2.0。从sqlplus假脱机工作正常。如何将SQLcl设置为假脱机文件?

  • 我在SQL Developer中连接到远程服务器上的Oracle数据库。我有一个PL/SQL脚本,它将数据存储在clob变量中。我希望将此变量的数据输出到本地计算机上的一个文件中。 我遇到了,但我想我没有正确使用它。 下面是我的脚本: 当我运行该脚本时,没有任何内容写入文件C:\home\output.txt。我希望clob变量中的数据被写入文件。 我该如何进行? 编辑:如果有人知道将clob变量

  • 我正在为我公司的 POC 实施一个小型 hadoop 集群。我正在尝试使用Flume将文件导入HDFS。每个文件都包含如下 JSON 对象(每个文件 1 个“长”行): “objectType”是数组中对象的类型(例如:事件、用户…)。 这些文件稍后将由多个任务根据“对象类型”进行处理。 我正在使用spoolDir源和HDFS接收器。 我的问题是: > 当flume写入HDFS时,是否可以保留源文

  • 本文向大家介绍假脱机和缓冲之间的区别,包括了假脱机和缓冲之间的区别的使用技巧和注意事项,需要的朋友参考一下 在计算机性能方面,主要因素是多任务处理,即CPU如何在不同的输入输出子系统之间划分和执行进程。为了最有效地处理任务,计算机系统使用各种方法来计划任务,加快计算速度并改善Web浏览,其中假脱机和缓冲是主要方法。 以下是假脱机和缓冲之间的重要区别。 序号 键 假脱机 正在缓冲 1 定义 后台打印

  • 我有我有水槽代理如下 假脱机目录中的文件将自动重命名为 。已完成,文件应重命名为 。在水槽代理将该文件写入 HDFS 后完成,但在我的情况下,它将文件重命名为 .在代理运行之前已完成。它还将文件重命名为 .即使我只是手动将文件复制到假脱机目录,也已完成。 还有一个问题是删除策略即使在文件复制到HDFS后也不会删除文件。 代理将假脱机目录文件随机写入HDFS。 它还在HDFS创建了大量的tmp文件。

  • 使用Dash 0.22.0和Python 2.7.12。在下面的示例中,Ploly是3.1.0,但未使用。 我正在尝试创建一个最小的应用程序,应该完全脱机工作。 我没有从远程加载,,和,而是将其本地副本放在<代码>/资产/js。我想告诉Dash只使用这些文件的本地副本。 我读资产档案 HTML来源: 如您所见,我的本地js文件是从加载的,但它一直从 有没有办法避免这种情况?