我正在寻找一种在Oracle 9数据库中执行多行插入的好方法.以下内容适用于MySQL,但在Oracle中似乎不受支持.
INSERT INTO TMP_DIM_EXCH_RT
(EXCH_WH_KEY,
EXCH_NAT_KEY,
EXCH_DATE, EXCH_RATE,
FROM_CURCY_CD,
TO_CURCY_CD,
EXCH_EFF_DATE,
EXCH_EFF_END_DATE,
EXCH_LAST_UPDATED_DATE)
VALUES
(1, 1, '28-AUG-2008', 109.49, 'USD', 'JPY', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(2, 1, '28-AUG-2008', .54, 'USD', 'GBP', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(3, 1, '28-AUG-2008', 1.05, 'USD', 'CAD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(4, 1, '28-AUG-2008', .68, 'USD', 'EUR', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(5, 1, '28-AUG-2008', 1.16, 'USD', 'AUD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008'),
(6, 1, '28-AUG-2008', 7.81, 'USD', 'HKD', '28-AUG-2008', '28-AUG-2008', '28-AUG-2008');
Run Code Online (Sandbox Code Playgroud) 昨天我想在Oracle表中添加一个布尔字段.但是,Oracle中实际上没有布尔数据类型.有没有人知道模拟布尔值的最佳方法?谷歌搜索主题发现了几种方法
使用整数,只是不要为它分配除0或1以外的任何东西.
使用带有"Y"或"N"的char字段作为唯一的两个值.
使用带有CHECK约束的枚举.
有经验的Oracle开发人员是否知道哪种方法是首选/规范的?
是否有可能在每个表的每个字段中搜索Oracle中的特定值?
在一些表中有数百个表有数千行,所以我知道这可能需要很长时间才能查询.但我唯一知道的是我想要查询的字段的值是1/22/2008P09RR8.<
我已经尝试使用下面的这个语句根据我认为应该命名的内容找到一个合适的列,但它没有返回任何结果.
SELECT * from dba_objects
WHERE object_name like '%DTN%'
Run Code Online (Sandbox Code Playgroud)
这个数据库绝对没有文档,我不知道该字段的来源.
有什么想法吗?
我刚安装了oracle11g,它缺少Scott架构.所以我想自己生成它.我得到了"Scott"架构的sql脚本,但是当我尝试运行查询"创建由老虎识别的用户Scott"时 它显示以下错误:
ORA-65096:oracle中的公共用户或角色名称无效.
基本上它不允许我创建用户"Scott".为什么会这样,我该如何解决我的问题呢?
如果你使用过Oracle,你可能会收到有用的消息"ORA-00942:表或视图不存在".是否有合法的技术原因消息不包含丢失对象的名称?
关于这一点的争论是由于安全听起来像是由TSA制作的.如果我是攻击者,我会知道我刚试图利用哪个表,并且能够轻松地解释这个无用的消息.如果我是通过多层应用程序代码处理复杂连接的开发人员,那么通常很难说.
我的猜测是,当最初实现此错误时,有人忽略了添加对象名称,现在,人们担心它会破坏兼容性来修复它.(代码执行愚蠢的事情,如解析错误消息,如果它发生变化将会混淆.)
是否有开发人员友好(而不是招募您的DBA)方式来确定丢失表的名称?
虽然我已经接受了与该主题相关的答案,但它并没有真正回答我的问题:为什么这个名称不是错误信息的一部分?如果有人能提出真正的答案,我会很乐意改变我的投票.
我正在攻读本科数据库课程.
我想知道是否有任何在线网站允许我对已经构建和填充的数据库(具有已知模式)进行查询,因此我不必安装SQL并自己填充数据.
我目前正在手工练习我在这里的工作簿,但是我有点担心我可能会做错了而且很难检查它们的正确性,而不用针对"真实的东西"进行测试.
谢谢
(在我们的课程中,我们使用的是Oracle)
谁能告诉我如何为Oracle模式中的所有表,视图,索引,包,过程,函数,触发器,类型,序列,同义词,授权等生成DDL?理想情况下,我也想复制行,但这不太重要.
我希望在某种类型的预定作业上执行此操作,而不是每次都手动执行此操作,以便在SQL Developer中使用向导进行排除.
理想情况下,因为我将在几个具有相互授予和同义词的模式上运行它,我想有一种方法在输出中进行查找/替换,因此模式名称匹配我的新模式的名称成为.
谢谢!
如何使用/,使用日期数据类型插入具有不同输入的表?
insert into run(id,name,dob)values(&id,'&name',[what should I write here?]);
Run Code Online (Sandbox Code Playgroud)
我正在使用oracle 10g.
需要拆分功能,它将采用两个参数,字符串拆分和分隔符来拆分字符串并返回一个包含列Id和Data的表.如何调用Split函数,它将返回一个包含列Id和Data的表.Id列将包含序列,数据列将包含该字符串的数据.例如.
SELECT*FROM Split('A,B,C,D',',')
Run Code Online (Sandbox Code Playgroud)
结果应采用以下格式:
|Id | Data
-- ----
|1 | A |
|2 | B |
|3 | C |
|4 | D |
Run Code Online (Sandbox Code Playgroud) 为什么下面的sql会产生ORA-01810错误?我研究了错误,我为每个日期插入使用不同的日期格式
INSERT INTO bag_grte_clm
(
schd_dprt_ldt,
arr_trpn_stn_cd,
bkg_crtn_gdt,
sbmt_bag_grte_clm_dt,
bag_grte_clm_stt_cd,
lst_updt_gts,
bag_grte_clm_gts,
dprt_trpn_stn_cd
)
VALUES (
TO_DATE('2015/12/06', 'yyyy/mm/dd'),
'YUL',
TO_DATE('2015-11-15', 'yyyy-mm-dd'),
TO_DATE('120615', 'MMDDYY'),
'DENIAL',
(current_timestamp),
TO_TIMESTAMP('20151206 00:00:00', 'yyyymmdd hh:mm:ss'),
'ATL'
)
Run Code Online (Sandbox Code Playgroud)