我想知道是否存在与Oracle的分层语法等效的通用SQL start with...connect by.我需要一些可以在任何数据库上使用的东西.这是我的意思(使用Oracle的示例EMP表):
SELECT empno , ename , job , mgr ,hiredate ,level
FROM emp
START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr.
Run Code Online (Sandbox Code Playgroud)
递归公用表表达式适用于许多数据库实现,但不适用于MySQL.
我尝试将一些文本信息加载到clob字段中.我减少了代码,我遇到了以下代码:
DECLARE
WS_MAIN_CHUNK RAW(12001);
BEGIN
WS_MAIN_CHUNK := 'Do';
END;
/
Run Code Online (Sandbox Code Playgroud)
它给出了错误ORA-06512 PL/SQL:数字或值错误:十六进制到原始转换错误.为什么字符串'Do'是十六进制值,如何修复它?>只需将字符串赋值给原始变量?
谢谢你的帮助
如果我DDMM在PL/SQL中有一个日期格式,我想验证它.这样做的正确方法是什么?
DD是一天,MM是飞蛾.
For an example:
0208 - is a valid date
3209 - is not a valid date
0113 - is not a valid date.
Run Code Online (Sandbox Code Playgroud) 在问题中 - :new当更新完全省略触发器中引用的列时,将采用什么值?
我正在尝试调试一个存储过程,它会在更新时触发一个触发器,它使用一个函数接受:new带有DATE值的字段.但是,我正在运行的更新不会更新引用的列.
触发器是否会使用存储在运行更新的表中的值?还是会从其他地方拿走它?
我从有零售和企业客户的桌子中进行选择.我希望我的结果集在一列中返回公司和零售客户的名称.目前我将它们返回两个不同的列,如下所示:
select e.cust_id,
e.cust_location,
f.location
max(case
when e.preferredname is not null
then e.preferredname
end
)RETAIL_CUST_NAME,
max(case
when e.preferredname is null
then e.CORP_NANME
end
)CORPORATE_CUST_NAME
from Mytable e,
myothertable f
where e.cust-id = f.cust_id
group by e.cust_id,
e.cust_location,
f.location,
e.preferredname,
e.corp_name;
Run Code Online (Sandbox Code Playgroud)
我正在尝试做什么可能以及如何实现这一目标,而不必为零售和其他企业客户返回不同的列?
当我在oracle表上创建索引并且只指定列名和表名(基本上是默认索引)时,它是创建全局索引还是本地分区索引(即根据表分区对索引进行分区)?
有一个叫做的表TableA和另一个叫做的表TableB
我需要复制的列值ValueC表中TableB的列ValueD在表中TableA.两个表共享一个公共列:Table_id
我试过用:
DECLARE
CURSOR c_App
IS
SELECT *
from TableA
BEGIN
for i in c_App
LOOP
select ValueD from TableB where Table_id = c_App.Table_id;
END LOOP;
update TableA set ValueC = ValueD where Table_id = c_App.Table_id
END;
Run Code Online (Sandbox Code Playgroud)
但是,我在SQL开发人员中遇到错误:
Run Code Online (Sandbox Code Playgroud)PLS-00103: Encountered the symbol "END" when expecting one of the following: begin function package pragma procedure subtype type use <an identifier> <a double-quoted delimited-identifier> form current cursor 06550. 00000 …
select *
from table1 rcd,
table2 company
WHERE to_timestamp(to_char(rcd.date), 'YYYY-MM-DD HH:MI:SS') >
to_timestamp(to_char(company.date), 'YYYY-MM-DD HH:MI:SS')
Run Code Online (Sandbox Code Playgroud)
我想使用to_timestamporacle中的timestamp()来比较我的两个日期字段,并且我使用上面的查询它没有给出正确的结果(给出不大于来自company.date的记录).
任何想法如何使用to_timestamp在oracle中进行比较.
我正在寻找一种从WGS84转换为UTM Zone 21的方法
我只SDO_CS.TO_USNG在oracle空间中找到了一个函数,但这转换为美国国家网格(USNG),这是一个例子
Select SDO_CS.to_USNG(
SDO_GEOMETRY( 2001,8307,
SDO_POINT_TYPE(-57.5451,-25.2371,NULL),
NULL,NULL),
1
) UTM_MGRS
from dual;
_______________
21JVN4510008687
Run Code Online (Sandbox Code Playgroud)
转换为UTM将是x = 445099,61395302,y = 7208686,7337054