我正在尝试建立一个PL/SQL包依赖项列表,以便我可以帮助为我的包设置一个自动构建脚本,以便在测试服务器上运行.有没有办法从单个包开始(理想情况下,由名称标识的"根"包),然后查找所有依赖项,以及它们必须编译的顺序?依赖关系已在我的个人架构中完全解决(所以至少我有一个地方可以开始 - 但我下一步去哪里?).
(Oracle 10.2)
编辑:
正在使用的构建工具将使用构建顺序,并将从源代码控制中按顺序检索这些文件,然后将它们传递给Oracle进行编译(实际构建工具本身是用Python或Java编写的,或者两者兼而有之 - 我不是有权访问来源).基本上,构建工具需要输入一个文件列表,按照它们必须编译的顺序进行编译,并在源代码管理中访问这些文件.如果它有,那么一切都会很好.
编辑:
感谢整洁的脚本.不幸的是,构建过程主要不在我手中.该过程基于构建工具,该工具由我们正在集成的产品的供应商构建,这就是为什么我可以为构建过程提供的唯一输入是按照需要构建的顺序的文件列表.如果存在编译器错误,则构建工具失败,我们必须手动提交新构建的请求.因此,按照编译顺序排列的文件列表非常重要.
编辑:
发现这个:http://www.oracle.com/technology/oramag/code/tips2004/091304.html 给我任何对象的依赖项.现在我只需要正确的订购...如果我得到了一些工作,我会在这里发布.
编辑:(带代码!)
我知道,总的来说,甲骨文不需要这种东西,但对于那些仍然感兴趣的人来说......
我拼凑了一个似乎能够获得构建顺序的小脚本,这样所有的包都将以正确的顺序构建,没有依赖相关的错误(关于pacakges)第一次:
declare
type t_dep_list is table of varchar2(40) index by binary_integer;
dep_list t_dep_list;
i number := 1;
cursor c_getObjDepsByNameAndType is
--based on a query found here: http://www.oracle.com/technology/oramag/code/tips2004/091304.html
select lvl, u.object_id, u.object_type, LPAD(' ', lvl) || object_name obj
FROM (SELECT level lvl, object_id
FROM SYS.public_dependency s
START WITH s.object_id = (select object_id
from user_objects
where object_name = …Run Code Online (Sandbox Code Playgroud) 我正在尝试将WTP(Web平台工具)安装到我的Eclipse安装中,这样我就可以使XSL转换工作了.他们在这里为我安装的基础Eclipse是普通的Java IDE(如果这意味着什么,那么启动画面会显示"Ganymede").看看这个站点,获取下载的URL应该在这里:http://download.eclipse.org/webtools/updates/ ...但是当我将该URL提供给Eclipse更新管理器时,我收到一个错误告诉我:"在http://download.eclipse.org/webtools/updates/找不到存储库"
还有其他人有这个问题吗?有人知道可能会发生什么吗?有谁知道如何安装xsl-transform插件?
编辑:
我之前应该提到过,我希望找到一种方法来实现这一点,而无需安装任何新的Eclipse实例.这个过程最终将被发送给已经拥有Eclipse的其他几个开发人员(我正在测试的版本相同),我宁愿做一个就地升级,而不是让所有人都去安装新产品.
更新:
我找到了另一个插件,Xcarecrows 4 XML,它也可以进行XSL转换.界面很难看,看起来有点古怪,但它也是一个小的下载,至少它运行和转换.除非我能找到让WTP正常工作的简单方法,否则我可能会坚持这一点.
当我尝试在大型表上创建唯一索引时,我得到一个独特的约束错误.在这种情况下,唯一索引是4列的复合键.
是否有一种有效的方法来识别除以下之外的重复项:
select col1, col2, col3, col4, count(*)
from Table1
group by col1, col2, col3, col4
having count(*) > 1
Run Code Online (Sandbox Code Playgroud)
上面的解释计划显示了具有极高成本的全表扫描,并且只想找到是否有其他方法.
谢谢 !
我有一个正则表达式抛出ORA-12733,"正则表达式太长".如何确定支持的最大大小是多少?
仅供参考:违规正则表达式为892个字符.它是一个生成的正则表达式,所以我可以改变生成和执行它的方式,但我想知道在更改生成和执行方式之前,最大大小的限制是什么.
(运行Oracle 10.2g)
更新:
如果它取决于实际的正则表达式,这里是它的开头(剩下的就是重复的同一个东西,在^和之间有不同的值$):
(^R_1A$|^R_2A$|^R_3A$|^R_4A$|^R_4B$|^R_5A$|^R_5B$...
有没有人知道如何配置eclipse而不是在执行CTRL-C时复制字体颜色/背景?
不是说我会剪切和粘贴代码.我真的问这个朋友:)
Noob-ish问题:我正在寻找一种轻量级但不错的php方式来搜索MySql表的所有字段,无论结构如何.我首先尝试使用默认的mysql选择,但这太基本了.我正在寻找一些至少应该通过最佳匹配来排序结果的东西(关键字突出显示也会很好).
我发现谷歌搜索的小信息让我感到惊讶.到目前为止我发现的是Zend Framework Lucene实现,但这似乎有点太重(构建一个单独的索引)来满足我的需求.在深入研究之前,我想知道是否有更简单的方法.
我想知道是否有任何技巧trimspool只能修剪右边的尾随空格.
我有使用dbms_output.put_line打印到控制台的代码,输出通常有缩进,以便更容易用眼睛扫描.我将线宽设置得相当大,以使一些输出更容易阅读,所以我还设置了trimspool以消除额外的空白区域.唯一的问题是现在领先的空间被删除以及尾随的空格.有没有办法来解决这个问题?我可以.在某些输出语句中添加一个前导(在前导空格之前)" "字符,但我不允许在大多数包中修改代码.
这是没有trimmimg输出的内容:
level 1 (EOL)
level 2 (EOL)
Some data (EOL)
这是它目前输出的trimspool内容:
level 1(EOL) level 2(EOL) Some data(EOL)
这就是我想要的:
level 1(EOL)
level 2(EOL)
Some data(EOL)
另一个PL/SQL重构问题!
我有几个通用简化形式的游标:
cursor_1 is
with X as (select col1, col2 from TAB where col1 = '1'),
Y as (select col1, col2 from TAB where col2 = '3'),
/*main select*/
select count(X.col1), ...
from X inner join Y on...
group by rollup (X.col1, ...
cursor_2 is
with X as (select col1, col2 from TAB where col1 = '7' and col2 = '9' and col3 = 'TEST'),
Y as (select col1, col2 from TAB where col3 = '6'),
/*main select*/
select count(X.col1), …Run Code Online (Sandbox Code Playgroud) 我正在调试一个长时间运行的过程(40多分钟).在调试时,我不想让我的工作站全神贯注.我想VS如果发生异常将声音拉回我的工作站就可以发出声音,这样我就可以解决问题并继续前进.
这可能吗?
在开票应用程序中,请考虑以下事项:
我有一个产品表,其中也包含产品的价格.然后我有一张发票和invoice_lines表,在每个发票行中,我都会参考产品ID和数量.在这种情况下,我不会将产品的价格与发票行一起存储.
现在几个月后,如果产品价格发生变化,任何报告都会根据当前价格而不是实际销售产品的价格显示销售量.
我想到的一个解决方案是,我们保留一个名为价格的单独表格,链接到每个产品,每当产品价格发生变化时,记录就会插入此价格表中.此表中的最新记录始终被视为新发票的当前价格.每个发票行通过指示价格的ID来指示其价格,以便稍后在报告中正确显示.
处理此类情况的最佳做法是什么?
oracle ×5
plsql ×3
eclipse ×2
alert ×1
class ×1
debugging ×1
dependencies ×1
duplicates ×1
eclipse-3.4 ×1
eclipse-wtp ×1
invoice ×1
mysql ×1
php ×1
refactoring ×1
regex ×1
search ×1
sqlplus ×1
windows ×1