小编Ult*_*mit的帖子

从TABLE中选择DISTINCT CLOB_COLUMN;

我想找到可以假设名为COPIA的表中包含的名为CLOB_COLUMN(类型为CLOB)的列的不同CLOB值.

我选择了一个PROCEDURAL方法来解决这个问题,但我更愿意给出一个简单的SELECT,如下所示:SELECT DISTINCT CLOB_COLUMN FROM TABLE避免错误"ORA-00932:不一致的数据类型:预期 - 得到了CLOB"

我怎样才能做到这一点?

提前谢谢您的友好合作.这是我想到的程序方式:

-- Find the distinct CLOB values that can assume the column called CLOB_COLUMN (of type CLOB)
-- contained in the table called COPIA
-- Before the execution of the following PL/SQL script, the CLOB values (including duplicates) 
-- are contained in the source table, called S1
-- At the end of the excecution of the PL/SQL script, the distinct values of the column called CLOB_COLUMN
-- can be find in …
Run Code Online (Sandbox Code Playgroud)

oracle plsql ora-00932

12
推荐指数
4
解决办法
3万
查看次数

加载VBA时以编程方式重建.exd文件

将Microsoft Office 2007更新到Office 2010后,我们软件中嵌入的某些自定义VBA脚本无法编译,并显示以下错误消息:

对象库无效或包含对无法找到的对象定义的引用.

据我所知,此错误是Microsoft的安全更新(Microsoft安全通报960715)的结果.将ActiveX控件添加到VBA脚本时,有关控件的信息存储在本地硬盘驱动器(.exd-files)上的缓存文件中.安全更新修改了其中一些控件,但.exd文件未自动更新.当VBA脚本尝试加载存储在缓存文件中的旧版本控件时,会发生错误.必须从硬盘驱动器中删除这些缓存文件才能成功加载控件(这将自动创建新的,更新的.exd文件).

我想要做的是以编程方式(使用Visual C++)删除我们的软件加载时过时的.exd文件.使用CApcProject::ApcProject.Open我打开VBA项目时,设置以下标志:axProjectThrowAwayCompiledState.

TestHR(ApcProject.Open(pHost, (MSAPC::AxProjectFlag) (MSAPC::axProjectNormal | MSAPC::axProjectThrowAwayCompiledState)));
Run Code Online (Sandbox Code Playgroud)

根据文档,此标志应该导致重新编译VBA项目以及要删除和重建的临时文件.我还试图更新主机应用程序类型库的校验和,它应具有相同的效果.然而,这些修复工具似乎都没有完成这项任务,而且我的想法已经不多了.

vba apc visual-c++ office-2010

11
推荐指数
1
解决办法
2217
查看次数

导出为插入语句:但在SQL Plus中,该行会覆盖2500个字符!

我必须将Oracle表导出为INSERT STATEMENTS.

但是生成的INSERT语句覆盖2500个字符.

我不得不在SQL Plus中执行它们,所以我收到一条错误消息.

这是我的Oracle表:

CREATE TABLE SAMPLE_TABLE
(
   C01   VARCHAR2 (5 BYTE) NOT NULL,
   C02   NUMBER (10) NOT NULL,
   C03   NUMBER (5) NOT NULL,
   C04   NUMBER (5) NOT NULL,
   C05   VARCHAR2 (20 BYTE) NOT NULL,
   c06   VARCHAR2 (200 BYTE) NOT NULL,
   c07   VARCHAR2 (200 BYTE) NOT NULL,
   c08   NUMBER (5) NOT NULL,
   c09   NUMBER (10) NOT NULL,
   c10   VARCHAR2 (80 BYTE),
   c11   VARCHAR2 (200 BYTE),
   c12   VARCHAR2 (200 BYTE),
   c13   VARCHAR2 (4000 BYTE),
   c14   VARCHAR2 (1 BYTE) DEFAULT …
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus

7
推荐指数
1
解决办法
2万
查看次数

如何根据表FK关系在PL/SQL中生成DELETE语句?

是否可以通过脚本/工具使用Oracle PL/SQL基于表fk关系自动生成许多删除语句?

例如:我有表:CHICKEN(CHICKEN_CODE NUMBER),并且有30个表格,其中包含我需要删除的CHICKEN_CODE的fk引用; 还有其他150个表外键链接到我需要先删除的30个表.

是否有一些工具/脚本PL/SQL可以运行,以便根据FK关系为我生成所有必要的删除语句?

(顺便说一句,我知道有关关系的级联删除,但请注意:我不能在我的生产数据库中使用它,因为它很危险!)

我正在使用Oracle DataBase 10G R2.

请注意这个:

从SQL 2008中的外键关系生成删除语句?

另一个用户刚刚在SQL SERVER 2008中编写过,任何人都可以转换为Oracle 10G PL/SQL?我不能...... :-(

请假设V_CHICKEN和V_NATION是从根表中选择要删除的CHICKEN的条件:条件是:"根表上的COD_CHICKEN = V_CHICKEN和COD_NATION = V_NATION".

oracle plsql code-generation

6
推荐指数
1
解决办法
2万
查看次数

创建或替换并解析Java源代码,我无法使用java源创建函数

Oracle环境.

以下Java源代码已正确编译:

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED hr.roman
   AS package Package.NumeriRomani;

class Numero{
    String r="";
    int a=0;

    Numero(int n){
        a=n;
            if(n==0){
                r="NULL";
                return;}
            while(n>=1000){
                    r+="M";
                    n-=1000;}
            if(n>=900){
                    r+="CM";
                    n-=900;}
            while(n>=500){
                    r+="D";
                    n-=500;}
            if(n>=400){
                    r+="CD";
                    n-=400;}
            while(n>=100){
                    r+="C";
                    n-=100;}
            if(n>=90){
                    r+="XC";
                    n-=90;}
            while(n>=50){
                    r+="L";
                    n-=50;}
            if(n>=40){
                    r+="XL";
                    n-=40;}
            while(n>=10){
                    r+="X";
                    n-=10;}
            if(n>=9){
                    r+="IX";
                    n-=9;}
            if(n>=5){
                    r+="V";
                    n-=5;}
            if(n==4){
                    r+="IV";
                    n-=4;}
            while(n>=1){
                    r+="I";
                    n--;}
    }//Numero(int)
    Numero(String k){
        int vCor,vNext;
        r=k;
        for(int i=0;;i++){
            vCor=valore(k.charAt(i));
            if(i==k.length()-1){
                a+=vCor;
                break;}
            vNext=valore(k.charAt(i+1));
            if(vCor>=vNext)
                a+=vCor; …
Run Code Online (Sandbox Code Playgroud)

java oracle

6
推荐指数
1
解决办法
1万
查看次数

(Oracle):处于部分删除状态的列

我使用的是Oracle 10g.几个月以来我对表有以下错误:

ORA-12986: columns in partially dropped state. Submit ALTER TABLE DROP COLUMNS CONTINUE
Run Code Online (Sandbox Code Playgroud)

ALTER TABLE DROP COLUMNS CONTINUE语句因加班而失败.

我没有此数据库的DBA权限.

我能做什么?删除并重新创建表格?

这是一张拥有数百万条记录的大桌子.

我尝试了什么:

  1. 曾几何时,我发出以下命令将一些列设置为未使用状态:

    ALTER TABLE hr.admin_emp SET UNUSED (hiredate, mgr);
    
    Run Code Online (Sandbox Code Playgroud)

    然后,我给出了以下命令:

    ALTER TABLE hr.admin DROP UNUSED columns;
    
    Run Code Online (Sandbox Code Playgroud)

    系统挂起,操作太长,故障.

    现在该表hr.admin有两个处于部分掉落状态的列,我不能既不向前也不向后.

    我不明白为什么会这样.

  2. 我做了以下步骤,系统挂起了第二阶段:

    第一阶段============

    SQL> select * from user_unused_col_tabs;
    
    TABLE_NAME  COUNT
    ----------- ----------
    TEMP        1
    
    Run Code Online (Sandbox Code Playgroud)

    第二阶段============

    SQL> alter table temp drop unused columns;
    
    Table altered.
    
    Run Code Online (Sandbox Code Playgroud)

    第三阶段=============

    SQL> select * from user_unused_col_tabs;
    
    no rows selected
    
    Run Code Online (Sandbox Code Playgroud)
  3. Checkpoint 500选项

    我再次尝试以下声明:

    ALTER TABLE …
    Run Code Online (Sandbox Code Playgroud)

oracle ddl alter-table oracle10g

5
推荐指数
1
解决办法
2400
查看次数

在全局临时表中加载数据

我在同一个Oracle用户上有两个不同的Oracle会话("会话A"和"会话B").

在"会话A"中填充全局临时表,其中包含大约320,000条记录.

如何在"会话B"的全局临时表中快速插入相同的320,000条记录?

提前感谢您的善意建议!

编辑:我忘了指定我只允许创建全局临时表.

编辑:我忘了指定我不允许创建数据库链接

sql oracle temp-tables

3
推荐指数
1
解决办法
1863
查看次数

Select Top(n)和Delete Top(n)是否相同?

如果使用select语句:

select top (18) * from pippo;
Run Code Online (Sandbox Code Playgroud)

我使用delete语句:

delete top (18) from pippo;
Run Code Online (Sandbox Code Playgroud)

我想知道18个选中和删除的行是否相同.
有帮助吗?

在接受答案后编辑:

我在这里找到了以下解决方案:从SQL Server中的表中删除"第一个"记录,没有WHERE条件

WITH  q AS
        (
        SELECT TOP 18 *
        FROM    pippo
        ORDER BY FIELD1 ASC /* You may want to add ORDER BY here */
        )
DELETE
FROM    q
Run Code Online (Sandbox Code Playgroud)

使用此解决方案,我按FIELD1对所有"pippo"表进行排序,然后删除前18行.

sql sql-server-2005

3
推荐指数
1
解决办法
202
查看次数

从XML到Oracle PL/SQL环境中的路径列表

请假设您有一个XML文件(例如,存储在Oracle表中,该表还有一个CLOB列):

<ALFA>
  <BETA>0123</BETA>
  <GAMMA>2345</GAMMA>
  <DELTA>
     <EPSILON>3</EPSILON>
  </DELTA>
</ALFA>
Run Code Online (Sandbox Code Playgroud)

如何在输出中生成所有可能路径的列表?

/ALFA/BETA/text()
/ALFA/GAMMA/text()
/ALFA/DELTA/EPSILON/text()
Run Code Online (Sandbox Code Playgroud)

我需要以下内容:我必须从长XML中提取许多信息,并且我必须将XMLEXTRACT与所有可能的路径一起使用,所以我想知道是否可以以自动方式"dbms_output.put_line"它们.

我需要一个独立于标签名称的解决方案.

请假设XML格式正确.

提前感谢您的帮助.


  • 在第二个实例中:

如果尚未安装Oracle Java Extension,我该怎么办?我收到以下错误?

ORA-19112: error raised during evaluation:  
ORA-06550: line 1, column 13:
PLS-00201: identifier 'SYS.DBMS_XQUERYINT' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Run Code Online (Sandbox Code Playgroud)

请假设我不是DBA,DBA不授权Oracle Java Extension安装.

xml oracle plsql xmltype

3
推荐指数
1
解决办法
1586
查看次数

Oracle PL/SQL:如何在长包中找到未使用的变量?

请假设您有一个大约200,000行代码的Oracle PL/SQL包.

有没有快速的方法来检测声明的变量,但没有在包中使用?

提前感谢您的帮助.

编辑(2014年4月7日):我正在使用Oracle 10G.

编辑:我正在寻找一个纯PL/SQL解决方案.

variables plsql oracle10g

3
推荐指数
1
解决办法
3320
查看次数