我正在制作一个存储XML的表.要存储XML,我使用的是CLOB数据类型.我的XML的最大大小为5kb.我应该在创建表时定义CLOB列的大小?
我正在使用oracle 11g,我有一个在Spring框架中编码的应用程序.一旦我在安装了Linux的Sun fire 4170上配置数据库,机器的CPU利用率大约为80-100%,然而,当我将相同的数据库转移到安装了Unix OS(可能是更强大的机器)的Sun M3000服务器时,应用程序性能变得更好down和CPU利用率保持在90-100%.我无法弄清楚它的应用程序是否正在进行此类利用或其数据库设计.补充说,数据库不是关系型的; 事情由应用程序处理.
我在SQL中发现了一个关于MAX()函数的非常有趣/奇怪的事情.
我有varchar2(20)数据类型的列ID,有以下条目: -
ID
根据我的理解,如果我使用"select max(ID)from table;" 我应该得到909作为结果,但我得到99.有人可以解释为什么会发生这种情况吗?
1
2
3
4
5
6
9
99
909
我有一张桌子,其中我有一个针对FK的多个条目.我想找出没有特定条目的FK的值,例如
我的表有以下条目.
PK----------------FK-----------------Column entries 1----------------100-----------------ab1 2----------------100-----------------ab2 3----------------100-----------------ab4 4----------------200-----------------ab1 5----------------200-----------------ab2 6----------------200-----------------ab3 7----------------300-----------------ab1 8----------------300-----------------ab2 9----------------300-----------------ab3 10---------------300-----------------ab4
现在,从这张表中我想过滤所有那些没有ab3或ab4的FK.当然,我期望不同的值,即在这种情况下结果将是FK = 100和200.
我正在使用的查询是
select distinct(FK)
from table1
where column_entries != 'ab3'
or column_entries != 'ab4';
Run Code Online (Sandbox Code Playgroud)
当然,此查询不会获取所需的结果.
我在表中有一列,其中包含带有附加字符串的特殊字符.同一列也包含数字.我只是在提取该列中的数字时感到沮丧,例如
Name-3445 => 3445; Out-90 => 90; 786 => 786
Run Code Online (Sandbox Code Playgroud)
我如何在SQL或PL/SQL中执行此操作?
我使用以下代码在Oracle中创建了一个虚拟列.
CREATE OR REPLACE function email_address (ID_ varchar2)
return varchar2
deterministic
as
lname varchar2 (256);
snumber varchar2 (256);
email varchar2 (256);
BEGIN
select substr( p.name, instr( p.name, ' ', -1 ) + 1 ) into lname
from person p where p.id = id_;
SELECT regexp_replace(p.service_no, '[^0-9]*', '') into snumber
FROM person p where p.ID = id_;
email:= snumber||lname||'@met.af';
return email;
end email_address;
Run Code Online (Sandbox Code Playgroud)
虚拟列工作正常,它确实填充了我想在虚拟列中实现的内容.但是当我使用虚拟列表创建视图时会出现问题; 表现非常糟糕(观点的人口).在这里,我想提一下,如果我不使用该功能(即电子邮件的空列),该视图的工作完全正常.视图的代码如下
select distinct
person.SERVICE_NO as Service_No,
person.CNIC_NO as CNIC, person.NAME as NAME ,
card.CPLC_SERIAL_NO as Card_Number,
child_dc.NAME …Run Code Online (Sandbox Code Playgroud) 我在PL/SQL中创建了一个过程,它根据主键将数据从一个表插入另一个表.我的程序工作正常,但我无法弄清楚如果主键已经存在,我将如何更新我的表MAIN列CODE_NUMBER.
实际上我希望MAIN表的行在其具有主键时获得UPDATED,并在主键不存在时从REGIONS插入数据.
DECLARE
variable number;
id number;
description varchar2 (100);
CURSOR C1 IS
select regions.REGION_ID variable
from regions;
BEGIN
FOR R_C1 IN C1 LOOP
BEGIN
select regions.REGION_ID,regions.REGION_NAME
into id,description
from regions
where regions.REGION_ID = R_C1.variable;
----If exists then update otherwise insert
INSERT INTO MAIN( ID, CODE_NUMBER) VALUES( id,description);
dbms_output.put_line( id ||' '|| 'Already Exists');
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
dbms_output.put_line( R_C1.variable);
END;
END LOOP;
END;
Run Code Online (Sandbox Code Playgroud) 我有一个字符串(带空格),我想从中分隔最后一个单词.例如:
"Steve Jobs" => Jobs
"Stack OverFlow Question" => Questions
Run Code Online (Sandbox Code Playgroud)
PL/SQL或SQL中是否有任何功能,以便我能够得到结果Jobs并Question分离出来?
我有一个查询结果,其中定义了BLOB列.BLOB包含图像,我有兴趣在不使用任何类型的应用程序的情况下向其他人显示此结果.例如,查询返回三列: -
有没有办法以任何导出格式检索/显示此BLOB,可能是Microsoft访问,Excel工作表,HTML或PDF.主题是获取此结果并显示此BLOB以及其他列,我可以选择仅使用PL/SQL和SQL.在这里我想补充说我正在使用HORA(保留工具)来导出我的查询结果.
NAME => Steven
PHONE => 786
PICTURE => BLOB
以下代码显示的错误是:无法将对象转换为整数.我不知道还有什么可以包括它.
private RowFilter filter(final int itemsPerPage,final int target) {
return new RowFilter() {
public boolean include(Entry entry) {
/* HERE I AM RECEIVING ERROR: Multiple markers at this line
- Type mismatch: cannot convert from Object to int
- Cannot cast from Object to int */
int ei = (int) entry.getIdentifier();
return (target * itemsPerPage <= ei && ei < target
* itemsPerPage + itemsPerPage);
}
};
}
Run Code Online (Sandbox Code Playgroud) 以样本HR模式为例.什么是查找没有LOCATION_ID = 1700的员工
的查询我已经尝试使用内部联接查询但我不知道如何进一步.
结果查询应该是这样的
select * from employees
inner join departments on
employees.DEPARTMENT_ID=departments.DEPARTMENT_ID
--> and where departments.location_id != '1700'
Run Code Online (Sandbox Code Playgroud)
因为我以HR模式为例.我想补充一点,在我原来的情况下,location_id是一个varchar2.
我已经列命名为r1_name,r2_name,r3_name在我的桌子....我想用迭代它们for循环.
for($r=1; $r<=5; $r++) {
echo $data->r[$r]_name;// how am i going to iterate this
}
Run Code Online (Sandbox Code Playgroud)
我得到一个错误:
syntax error, unexpected '_name'
Run Code Online (Sandbox Code Playgroud)