上述查询在 Oracle 10g 上成功运行。现在我必须使用 SQLSERVER 2005 实现相同的查询(应用程序)。
当我在 SQLSERVER 2005 中运行上述查询时,出现错误“FOR UPDATE 子句仅允许用于 DECLARE CURSOR”。
SQLSERVER 2005 支持上述查询吗?或者有什么替代方案吗?
目的:
基本上我正在更新我的应用程序中的文档。我正在使用分块更新,每次都必须将旧内容附加到新内容。
代码:
Blob bb = getDataAccess().executeScalar( "select content from Repository where id = ? for update", getId());
os = bb.setBinaryStream(startIndex + 1);
while ((read = content.read(buf)) > 0) {
os.write(buf, 0, read);
startIndex += read;
//commit every megabate or every second so upload progress is visible
//and we don't lose more than 1MB if something happens.
if (startIndex - lastStartIndex > …Run Code Online (Sandbox Code Playgroud) 我有一个PL/SQL过程,它创建一个临时表,然后使用游标从此临时表中提取数据,处理数据,然后删除临时表.但是,如果数据库中不存在表,则Oracle不允许使用游标.
请帮我处理这件事.
给出一张表:
ID NUMBER
OBJECTID NUMBER
CATEGORYID NUMBER
SCORE NUMBER
SCOREDATE DATE
Run Code Online (Sandbox Code Playgroud)
是否有可能SCOREDATE在一个查询中有效地检索给定对象的每个不同类别中的最后得分(基于)?
我想在Oracle中创建此表.这只是表SQL脚本.
-- CREATE TABLES SECTION -------------------------------------------------
-- TABLE DATACENTER
CREATE TABLE DATACENTER(
DATACENTERID INTEGER NOT NULL,
NAME VARCHAR2(80 ) NOT NULL,
LOCATION VARCHAR2(200 ),
DCALLOWEDWEIGHTKG NUMBER(9,0),
DCMAXIMUMWEIGHTKG NUMBER(9,0),
DCALLOWEDPOWERWATT NUMBER(9,0),
DCMAXPOWERWATT NUMBER(9,0),
DCALLOWCOOLINGPOWERBTU NUMBER(9,0),
DCMAXCOOLINGPOWERBTU NUMBER(9,0),
DESCRIPTION CLOB
)
/
-- ADD KEYS FOR TABLE DATACENTER
ALTER TABLE DATACENTER ADD CONSTRAINT DATACENTERID PRIMARY KEY (DATACENTERID)
/
-- TABLE COMPONENT
CREATE TABLE COMPONENT(
COMPONENTID INTEGER NOT NULL,
DATACENTERID INTEGER,
FKCOMPONENTID INTEGER,
COMPONENTSTATSID INTEGER NOT NULL
)
/
-- ADD KEYS FOR …Run Code Online (Sandbox Code Playgroud) 我是一个sql领域的新人,我有一些问题.
如下表格
Table Name:EM
ID name Birth High
1 Tom 11/23 65
2 Mary 11/23 65
3 Bill 03/02 55
4 Liny 01/08 45
5 Kevin 05/16 50
6 Lee 05/16 50
Run Code Online (Sandbox Code Playgroud)
但我只需要下面的数据
ID name Birth High
1 Tom 11/23 65
2 Mary 11/23 65
3 Kevin 05/16 50
4 Lee 05/16 50
Run Code Online (Sandbox Code Playgroud)
我用傻瓜sql来获取这样的数据
select * from em where birth = '11/23' and high = '65';
select * from em where birth = '05/16' and high = '50';
Run Code Online (Sandbox Code Playgroud)
请教我如何在一个sql语句中得到结果,非常感谢.
我有一个查询,其中一个过滤器是一个日期,是否可以在Oracle中过滤类似下面的内容?
SELECT * FROM tabela WHERE dateField = '2014-02-10 15:56:00.000'
Run Code Online (Sandbox Code Playgroud)
或者我们是否总是要将其转换为String?
SELECT * FROM tabela WHERE dateField = TO_DATE('10/02/2014 15:56:00', 'DD/MM/YYYY HH24:mi:ss')
Run Code Online (Sandbox Code Playgroud)
我正在使用Oracle 10g.
我试图通过使用从表中只选择10行,limit但它给了我一个错误,
我的疑问是
SELECT *
FROM table_name
ORDER BY CUSTOMER
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误:
ORA-00933:SQL命令未正确结束
任何人都可以指导我.
我想清理Temp其具有数据文件表空间
temp01.dbf和temp02.dbf,所以请给我建议,我应该放下
temp01.dbf文件或者删除临时表空间.Temp表空间的数据文件如下
33G temp01.dbf
1.5G temp02.dbf
Run Code Online (Sandbox Code Playgroud) 我有这个Oracle表,用于存储应用程序设置.

这是用于创建表的SQL脚本:
CREATE TABLE "GLOBALSETTINGS"(
"SettingName" Varchar2(40 ) NOT NULL,
"SettingValue" Varchar2(40 )
)
/
-- Add keys for table GLOBALSETTINGS
ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "Key14" PRIMARY KEY ("SettingName")
/
ALTER TABLE "GLOBALSETTINGS" ADD CONSTRAINT "SettingName" UNIQUE ("SettingName")
/
Run Code Online (Sandbox Code Playgroud)
这是我想要使用的SQL语句:
UPDATE GLOBALSETTINGS
SET settingValue =
CASE
WHEN settingName = 'SessionTTL'
THEN '30'
WHEN settingName = 'MaxUsersActive'
THEN '40'
ELSE settingValue
END
WHERE settingName IN ('SessionTTL', 'MaxUsersActive');
Run Code Online (Sandbox Code Playgroud)
但是当我在SQL开发人员中运行它时,我收到以下错误消息:
Error starting at line 1 in command:
UPDATE GLOBALSETTINGS
SET settingValue = …Run Code Online (Sandbox Code Playgroud) 我正在使用Oracle10g数据库,其中一个表包含一个DateDataType 列.我使用以下查询来获取记录:
select to_char(START_TIME, 'YYMMDD HH24:MI:SS') from table;
Run Code Online (Sandbox Code Playgroud)
所以从上面的查询,结果将是类型VARCHAR.我尝试了to_Date()方法,但只显示了DATE.我可以转换VARCHAR为DATETIME格式吗?结果应该是类型DATETIME.请帮我解决这个问题.