小编Vin*_*rat的帖子

ORACLE SDO_GEOMETRY ToString()?

我有一个我正在编写的.Net系统,它需要能够从数据库中检索oracle几何字段.在我的SQL语句中是否有任何方法可以将几何类型转换为字符串,以便我可以在.Net端处理它.目前我无法获取数据,因为它不是一个有效的数据类型放入我的OLEDB阅读器,因此它必须转换为数据库端.

select CS_BOUNDS from MDSYS.CS_SRS where SRID = 4326
Run Code Online (Sandbox Code Playgroud)

谢谢

.net sql oracle plsql oracle-spatial

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

如何在PL/SQL中的一行中打印所有数据

我正在练习pl/sql程序.我有一个程序,即:示例:

begin
    for i in 1..10
    loop
        dbms_output.put_line(i);
    end loop;
end;
Run Code Online (Sandbox Code Playgroud)

输出是这样的:

1
2
3
.
.
.
10
Run Code Online (Sandbox Code Playgroud)

但是我必须在一行中打印所有数字,即(123.....10)我怎么能这样存档,我会得到输出是这样的:123...10

sql oracle plsql

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

在程序中使用FOR UPDATE时应该何时提交?

如果我在存储过程中使用FOR UPDATE子句应该何时"提交"?关闭打开的光标后或关闭打开的光标之前?以下是我正在使用的程序,我是以正确的方式做的吗?

CREATE OR REPLACE PROCEDURE Proc_UpdateCSClientCount(inMerid     IN  VARCHAR2,
                                                     outCliCount  OUT NUMBER,
                                                     outretvalue  OUT NUMBER)
AS
   CURSOR c1 IS
      SELECT CLIENT_COUNT
        FROM OP_TMER_CONF_PARENT
       WHERE MER_ID = inMerid
      FOR UPDATE OF CLIENT_COUNT;
BEGIN
   OPEN c1;
   IF SQL%ROWCOUNT = 1 THEN
      FETCH c1 INTO outCliCount;
      outCliCount := outCliCount + 1;
      UPDATE OP_TMER_CONF_PARENT
         SET CLIENT_COUNT = outCliCount
       WHERE CURRENT OF c1;
   END IF;
   outretvalue := 0;
   CLOSE c1;
   COMMIT;
EXCEPTION
   WHEN no_data_found THEN
      outretvalue := -1;
END;
Run Code Online (Sandbox Code Playgroud)

oracle plsql stored-procedures oracle10g oracle11g

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

如何在P/L SQL中仅转换为第一个大写字母和其他字母小写?

我在数据库列中有大写单词(NO,YES,FAIL)这些单词我需要选择这些列值为No,Yes,Fail(只有拳头字母大写和其他字母是小写)

p/l sql中是否有任何内置函数?

sql oracle plsql oracle11g

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

PL/SQL ...如果在select中?

在PL/SQL方面我很新,我必须修改其他人的存储过程.

是否可以在select中间添加if语句?我尝试打开一个游标并从不同的表中选择一堆东西(不要问我为什么他们没有使用连接)并返回光标.我正在尝试做的事情是,有两列具有相似的数据,可以永远不会同时填充.因此,如果一个为null,则另一个应该有一个值,并且游标需要来自任何填充的值.那么...如果声明里面的选择?

我不会发布实际的代码,因为它会使你的眼球流血,但它看起来像......

open rc for
select l.data1 as ld1, l.data2 as ld2, b.data1 as bd1, 
       b.data2 as bd2, c.data1 as as c_d1, c.data2 as cd2
from tablel l, tableb b, tablec c
where blahblahblah
and c.data1 = [b.data3 if b.data4 is null, else b.data4]?
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我似乎无法获得语法.

sql database oracle plsql

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

优化sql查询

UPDATE employees
   SET job_id = (SELECT job_id
                   FROM employees
                  WHERE employee_id = 205),
       salary = (SELECT salary
                   FROM employees
                  WHERE employee_id = 205)
 WHERE employee_id = 114;
Run Code Online (Sandbox Code Playgroud)

这是我一直在使用的查询.在这里我使用2个子查询,但它们具有相同的where条件..寻道时间加倍..有没有办法优化整个查询到单个子查询?

提前致谢

sql oracle

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

ORACLE数字或值错误

我正在尝试生成有关磁盘读取次数最多的查询的报告.生成的报告将作为电子邮件发送.我写了一些代码如下.当我包括前15个查询它工作正常但如果我增加hte计数我得到'数字或值错误'.我想这是因为我超过了某些数据类型限制但无法识别它.有人看到了这个问题吗?如何在没有这样的错误的情况下发送大量报告?

我有一个F_GENERATE_REPORT函数和P_SEND_REPORT_AS_EMAIL过程.P_SEND_REPORT_AS_EMAIL过程使用F_GENERATE_REPORT作为电子邮件的正文,如UTL_MAIL.SEND(message => F_GENERATE_REPORT(5)),其中5用于tOP 5.

程序P_SEND_REPORT_AS_EMAIL中的UTL_MAIL.SEND()行发生错误

谢谢大家.

clgenerated_html_markup是一个CLOB.

FOR cur_for_query IN (SELECT * 
                        FROM (SELECT buffer_gets,rows_processed,executions,
                                     fetches,hash_value,sql_text, disk_reads,
                                     rank() over(ORDER BY disk_reads DESC) AS rank FROM v$sqlarea)
                       WHERE rank <= nquery_count)
LOOP
   --dbms_output.put_line(counter);
   --counter := counter + 1;
   clgenerated_html_markup := clgenerated_html_markup || HTF.TABLEROWOPEN || CHR(10) ;
   clgenerated_html_markup := clgenerated_html_markup || HTF.TABLEDATA(cur_for_query.rank,null,null,null,null,null,'class=tdData') || CHR(10) ;
   clgenerated_html_markup := clgenerated_html_markup || HTF.TABLEDATA(cur_for_query.sql_text,null,null,null,null,null,'class=tdSQLText') || CHR(10) ;
   clgenerated_html_markup := clgenerated_html_markup || HTF.TABLEDATA(TO_CHAR(NVL(cur_for_query.disk_reads,'')),'CENTER',null,null,null,null,'class=tdData') || CHR(10) ;
   clgenerated_html_markup := clgenerated_html_markup || HTF.TABLEDATA(TO_CHAR(NVL(cur_for_query.buffer_gets,'')),'CENTER',null,null,null,null,'class=tdData') || CHR(10) ;
   clgenerated_html_markup := …
Run Code Online (Sandbox Code Playgroud)

oracle numeric

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

PL/SQL:基于ROWID更新行

我试图更新没有唯一索引的表中的行.所以,我选择了要更新的行的ROWID,现在我想更新这样的行:

UPDATE MYTABLE SET MYCOLUMN = 0 WHERE ROWID = "AAAIWWAAFAAApwDADR"
Run Code Online (Sandbox Code Playgroud)

MYCOLUMN的类型为NUMBER(1)

我收到错误: invalid identifier [SQL State=42000, DB Errorcode=904]

知道为什么吗?

oracle plsql rowid

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

在sqlplus命令模式下声明游标

我有一个使用声明游标的SQL文件,我使用@abc运行它,但它没有执行所有语句并等待而不返回命令提示符.声明游标语句后它没有继续.当我尝试在命令模式下运行declare cursor语句时,再次发生同样的问题.我只能在按Ctrl + C后返回SQL priompt.我对SQL世界很新.虽然这可能是一个基本错误,但我无法在任何网站找到解决方案.任何帮助是极大的赞赏.

SQL> DECLARE CURSOR id_cursor IS SELECT id FROM user_names WHERE dept_no = 1002 
AND BITAND(flags, 4) = 4 AND time_created BETWEEN 1137974400 AND 1326067199;
  2
  3
  4  ;
  5
  6
Run Code Online (Sandbox Code Playgroud)

oracle sqlplus

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

java.sql.SQLException:超出锁定等待超时; 尝试在MYSQL中重启事务异常

我在MYSQL中使用表名"test",它在事务T1期间锁定,将在20分钟内完成.当我在这20分钟内通过另一个事务T2更新此表时.我得到一个例外: -

11:58:38,584 ERROR [STDERR] java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
11:58:38,584 ERROR [STDERR]     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
11:58:38,584 ERROR [STDERR]     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
11:58:38,584 ERROR [STDERR]     at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1124)
11:58:38,584 ERROR [STDERR]     at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:676)
Run Code Online (Sandbox Code Playgroud)

请给我解决方案,如何在不得到此异常的情况下执行此事务T2?

在mysql数据库中更新innodb_lock_wait_timeout的值是否正确以解决此异常.我期待着为这个问题找到任何有用的解决方案.

java mysql sql struts

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

如何在PLSQL中访问数组

请问,是否可以访问 varray 中的单个值?

像newVariable := myArray(value2)--> 这会将数组中的第二个值分配给新变量...

我还需要这样的东西:

FOR CYCLE...
x++
newVariable(x) := myArray(value(x))
END FOR CYCLE 
Run Code Online (Sandbox Code Playgroud)

是否可以?

谢谢,我是信息技术专业的学生,​​我正在努力解决这个问题。不知道去哪里看...

sql oracle plsql

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

如何将工具栏添加到UITableViewController

我需要在我的底部添加一个带有按钮的工具栏UITableView.我看到很多网站都说使用a UINavigationController就是这样,但有没有任何选项可以让我在这个内部做到这一点UITableViewController?

iphone objective-c toolbar uitableview

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

从Oracle数据库中读取XML文件中的额外空格 - 为什么?

我正在试验Python和Oracle XML DB.我有一个表,其中包含XMLType列和Oracle 11g数据库中的ID列.XML列的存储模型是对象关系.有时我需要获取一个完整的XML文件,并且通常它超过4000个字符,所以我使用此查询来获取CLOB:

select t.representation.getclobval()
from myxmldocs t 
where id=:documentId
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时,输出包含额外的空格,XML元素之间的换行符和制表符在我插入的XML文档中绝对不存在.效果是某种格式化,因此输出如下所示:

<A>\n
\t<B></B>\n
\t\t<C>Some text</C>\n
\t\t<C>Some more text</C>\n
\t<B></B>\n
...
Run Code Online (Sandbox Code Playgroud)

等等.相当漂亮和可读,但为什么我得到它?它还混淆了我正在使用的额外空格上的其他库.

如果我删除getclobval(),我的Python客户端不会获得CLOB而是一个Object,我不知道如何处理它.

这似乎是一致的; 我使用sqlplus命令行客户端,并使用不同的XML架构创建其他表,然后查询它们.在我的原型的先前版本中,我使用XMLType列使用CLOB存储模型并且没有此问题.

我应该如何重写查询以获得带有XML文件的CLOB而无需额外的格式化?


更新:根据注释中的请求,这是我select dump(t.representation) from myxmldocs t where id=:documentId从命令行客户端运行查询的输出(替换当然:documentId与数据库中的实际现有ID):

DUMP(T.REPRESENTATION)
--------------------------------------------------------------------------------
Typ=58 Len=218: 32,156,148,1,0,0,0,0,80,193,223,20,0,0,0,0,216,15,47,21,0,0,0,0,
80,44,55,21,0,0,0,0,0,202,154,59,160,15,0,0,160,15,0,0,1,0,4,0,220,190,195,71,1,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,174,33,65,0,15,0,72,0,1,0,0,0,0,0,0,0,49,0
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
,0,0,0,0,0,0,0,0
Run Code Online (Sandbox Code Playgroud)

xml oracle xmltype

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