我想找到可以假设名为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) 将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项目以及要删除和重建的临时文件.我还试图更新主机应用程序类型库的校验和,它应具有相同的效果.然而,这些修复工具似乎都没有完成这项任务,而且我的想法已经不多了.
我必须将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 PL/SQL基于表fk关系自动生成许多删除语句?
例如:我有表:CHICKEN(CHICKEN_CODE NUMBER),并且有30个表格,其中包含我需要删除的CHICKEN_CODE的fk引用; 还有其他150个表外键链接到我需要先删除的30个表.
是否有一些工具/脚本PL/SQL可以运行,以便根据FK关系为我生成所有必要的删除语句?
(顺便说一句,我知道有关关系的级联删除,但请注意:我不能在我的生产数据库中使用它,因为它很危险!)
我正在使用Oracle DataBase 10G R2.
请注意这个:
另一个用户刚刚在SQL SERVER 2008中编写过,任何人都可以转换为Oracle 10G PL/SQL?我不能...... :-(
请假设V_CHICKEN和V_NATION是从根表中选择要删除的CHICKEN的条件:条件是:"根表上的COD_CHICKEN = V_CHICKEN和COD_NATION = V_NATION".
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) 我使用的是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权限.
我能做什么?删除并重新创建表格?
这是一张拥有数百万条记录的大桌子.
我尝试了什么:
曾几何时,我发出以下命令将一些列设置为未使用状态:
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有两个处于部分掉落状态的列,我不能既不向前也不向后.
我不明白为什么会这样.
我做了以下步骤,系统挂起了第二阶段:
第一阶段============
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)Checkpoint 500选项
我再次尝试以下声明:
ALTER TABLE …Run Code Online (Sandbox Code Playgroud)我在同一个Oracle用户上有两个不同的Oracle会话("会话A"和"会话B").
在"会话A"中填充全局临时表,其中包含大约320,000条记录.
如何在"会话B"的全局临时表中快速插入相同的320,000条记录?
提前感谢您的善意建议!
编辑:我忘了指定我只允许创建全局临时表.
编辑:我忘了指定我不允许创建数据库链接
如果使用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行.
请假设您有一个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安装.
请假设您有一个大约200,000行代码的Oracle PL/SQL包.
有没有快速的方法来检测声明的变量,但没有在包中使用?
提前感谢您的帮助.
编辑(2014年4月7日):我正在使用Oracle 10G.
编辑:我正在寻找一个纯PL/SQL解决方案.
oracle ×7
plsql ×4
oracle10g ×2
sql ×2
alter-table ×1
apc ×1
ddl ×1
java ×1
office-2010 ×1
ora-00932 ×1
sqlplus ×1
temp-tables ×1
variables ×1
vba ×1
visual-c++ ×1
xml ×1
xmltype ×1