在我的应用程序中我正在尝试格式化和排序日期,我使用to_char()函数将日期格式化为我所需的格式,但是当我对它们进行排序时,它将它排序为字符串排序.但我希望它们按日期排序.
我需要一些帮助才能在同一个查询中实现这两个目标.请帮助我.
我使用的查询是,
SELECT to_char( t1.your_date_column1, your_format_mask ) as alias,
FROM your_table1 t1,your_table2
ORDER BY t1.your_date_column1
Run Code Online (Sandbox Code Playgroud) 我可以在oracle express版上拥有多个数据库吗?请告诉我们设置的步骤是什么?
我需要转发一组只有DML访问的序列.由于一段代码中的错误,在没有序列的情况下抓取了几个值,而是手动抓取,所以现在序列正在复制这些值.所以,我想将序列推到最大值,以便下次调用nextval时,它会给出一个高于最大值的值.我有大约50个序列,每个序列都需要前进几千个.
只有DML访问才有可能吗?如果是这样,我应该怎么做呢?
我正在将MSSQL脚本转换为Oracle,我无法弄清楚使用变量代替表名或列的语法.
这是一个简单的例子,我一直在尝试在Oracle SQL Developer中工作,所以我可以更好地理解语法:
set serveroutput on format wrapped;
declare
VR_TABLE VARCHAR2(256);
VR_UPDATE VARCHAR2(256);
begin
VR_TABLE :='SYSTEM_STATUS';
EXECUTE IMMEDIATE 'select UPDATE_VERSION INTO VR_UPDATE from ' || VR_TABLE || 'where rownum < 2 ;'
end;
Run Code Online (Sandbox Code Playgroud)
其中VR_TABLE是变量表名,它将在循环的每次迭代中被更改.有人可以指出我做错了什么,或者将我链接到一个对我有用的网站吗?我已经阅读了一些这方面的教程,但到目前为止我还没有运气.
我希望从Oracle中返回多行的查询返回带有逗号分隔值的单行,基本上将返回的行展平为单行.
在PostgreSQL中,这可以使用数组和array_to_string函数来实现,如下所示:
鉴于表"人":
id | name
---------
1 | bob
2 | alice
3 | jon
Run Code Online (Sandbox Code Playgroud)
SQL:
select array_to_string(array(select name from people), ',') as names;
Run Code Online (Sandbox Code Playgroud)
将返回:
names
-------------
bob,alice,jon
Run Code Online (Sandbox Code Playgroud)
如何在Oracle 9i中实现相同的结果?
谢谢,
马特
假设您有以下更新:
Update table set col1 = func(col2)
where col1<>func(col2)
Run Code Online (Sandbox Code Playgroud)
该FUNC函数为每个行计算两次,每行,或一次?
谢谢,
应该用两个或三个表实现两个表之间的一对多关系?例如,我们应该:
author(id,otherAttributtes)
books(id,authorid,otherAttributes)
Run Code Online (Sandbox Code Playgroud)
要么
author(id,otherAttributtes)
books(id,otherAttributes)
authorConnectsBooks(authorid,booksid)
Run Code Online (Sandbox Code Playgroud)
我更喜欢第一种方法,但我已经看过很多次第二种和更复杂的应用程序.第一种方法有任何缺点,或者只是个人的方式可以遵循?
我面前有一段这样的代码:
FOR row IN 1..l_RowSet(1).count
LOOP
l_a_variable := l_RowSet(1)(row);
END LOOP;
Run Code Online (Sandbox Code Playgroud)
l_RowSet是一种ApEx类型 - apex_plugin_util.t_column_value_list由此定义:
type t_column_value_list is table of wwv_flow_global.vc_arr2 index by pls_integer;
Run Code Online (Sandbox Code Playgroud)
在哪里wwv_flow_global.vc_arr2定义为
type vc_arr2 is table of varchar2(32767) index by binary_integer;
Run Code Online (Sandbox Code Playgroud)
将vc_arr2被传递回从我的代码apex_plugin_util.get_data功能.vc_arr2由列号索引,而不是按行索引.
最好的我可以看出这意味着数据有效地存储在2D数组中,按列然后按行索引.
使用LOOP语句时,是从零还是从一个索引?因为在我看来我应该能够使LOOP多余,即:
l_a_variable := l_RowSet(1)(1);
Run Code Online (Sandbox Code Playgroud)
但我需要提前知道是否将0或1作为初始行.
我无法在Oracle文档中找到一个明确的答案(不出所料,"索引"是一个相当广泛使用的术语),并且通过SO查看也不会向任何其他人显示相同的问题.
如果我使用下面的表达式,结果应为1.
regexp_instr('500 Oracle Parkway, Redwood Shores, CA','[[:digit:]]')
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个查找字符串中的最后一个数字?如果我要查找上例中的最后一个数字,它应该返回3.
我正在编写一个INSERTStatement,在PL/SQL块中向表中插入一行.如果此插入失败或没有插入行,那么我需要回滚先前执行的更新语句.
我想知道在什么情况下INSERT语句可以插入0行.如果插入因某些异常而失败,我可以在异常块中处理它.是否存在INSERT可能成功运行但不会抛出异常的情况,我需要检查是否SQL%ROWCOUNT < 1?