小编Bet*_*033的帖子

ORACLE如何使用带有动态阀芯位置的阀芯

好的,所以我是oracle的完整新手.现在已经不在了;

我想你可以理解我下面要做的事情.对于找到的每个存储过程,将DDL输出到带有其名称的文件名.

问题是我无法弄清楚如何让假脱机目标获取由光标设置的FileName的值.

DECLARE 
objName varchar2(50);
FileName varchar2(50);

cursor curProcs is
    select OBJECT_NAME into objName
      FROM ALL_PROCEDURES WHERE OWNER = 'AMS' 
      ORDER BY OBJECT_NAME; -- get all procs in db
BEGIN
open curProcs;
  if curProcs%ISOPEN THEN
   LOOP
    FETCH curProcs into objName;
    EXIT WHEN curProcs%NOTFOUND;
    FileName := 'C:\ ' || objName || '.PRC.SQL';
    spool FileName; --BREAKS
     DBMS_METADATA.GET_DDL('PROCEDURE',objName);
    spool off;
   END LOOP;
  END IF;
END; 
Run Code Online (Sandbox Code Playgroud)

关于我哪里出错的任何想法?如果有人有这方面的例子,我会非常感激.

我觉得我必须在它周围跳舞,因为如果我最初创建一个列

spool &ColName
Run Code Online (Sandbox Code Playgroud)

我得到一个结果,我似乎无法动态地改变那个&colname

谢谢你的帮助.

sql oracle oracle10g

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

如何让 SQL Server XQUERY 返回“没有名为 [Element] 的元素”以外的内容

如果在其他地方回答了这个问题,我们深表歉意。我不断收到错误消息 XQuery [Mytable.XMLData.nodes()]: There is no element named 'Answer'

SELECT 
ref.value('/','nvarchar(1000)')
FROM   Mytable CROSS APPLY xmldata.nodes('Answer') R(ref)
Run Code Online (Sandbox Code Playgroud)

——

--XML of Row
<Answer xmlns="http://TempNameSpace.com/AnswerData.xsd" Type="Deliverable">
  <Deliverable>
    <Title>test</Title>
    <Description>test</Description>
    <DueDate>2010-02-16T08:59:59</DueDate>
  </Deliverable>
</Answer>
Run Code Online (Sandbox Code Playgroud)

我已经尝试了几种不同的变体来获取根节点(“答案”)或任何子节点,如果,但是我将语句更改为

SELECT 
ref.value('/','nvarchar(1000)')
FROM   Mytable CROSS APPLY xmldata.nodes('/') R(ref)
Run Code Online (Sandbox Code Playgroud)

我得到结果 testtest2010-02-16T08:59:59

我最终会喜欢表格格式的数据,比如

SELECT 
    ref.value('/Title','nvarchar(1000)') as Title
    ref.value('/Description','nvarchar(1000)') as Description

etc..
    FROM   Mytable CROSS APPLY xmldata.nodes('/Deliverable') R(ref)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

sql sql-server xquery sql-server-2008

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

正则表达式从捕获中排除匹配

在.Net中使用Regex

我将有一组这样的数据

< Bunch o' Data Here >
Run Code Online (Sandbox Code Playgroud)

其中<只是新记录的指标,是记录>的结尾.

这些记录可能会像这样

< Dataset 1><Dataset 2 broken, no closing tag <dataset 3>
Run Code Online (Sandbox Code Playgroud)

他们也可以进来

< Dataset 1>Dataset 2 broken, no opening tag ><dataset 3>
Run Code Online (Sandbox Code Playgroud)

虽然,我不确定后一种情况是否可能,但是当我不得不跨过这座桥时.

我正在尝试使用Regex将这些分成基于这个开始和结束字符的记录,最终是这样的

Match 1 = < Dataset 1>
Match 2 = <Dataset 2 broken, no closing tag 
Match 3 = <Dataset 3>
Run Code Online (Sandbox Code Playgroud)

我试图找出非捕获组如何工作,也许我的理解是错误的.

<.*?(?:<|>)
Run Code Online (Sandbox Code Playgroud)

让我觉得非常接近我认为,除了它包括第三组数据的开头特征与第二组的捕获.我也怀疑它?:没有做它需要的东西,如果它取出它,它返回相同的匹配集(2).

c# regex

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

如何使用MSI更新服务

我有一个安装了MSI安装程序的Windows服务.我试图让这个安装程序充当"更新程序",首先让它自己卸载(RemovePreviousVersions = true?),然后重新安装.我理解的方式是,使用RemovePreviousVersions = true,当安装程序第二次运行时,它应该注意到产品的当前版本与已安装的版本不同,它将对已安装的产品执行卸载操作,然后执行在新版本上安装操作.然而,情况似乎并非如此.看来初始卸载步骤永远不会发生,安装程序只是尝试执行安装.这导致了我的问题,因为安装程序自定义操作是服务安装,当然,该服务已经安装,然后抱怨"服务已存在".

如何让Windows安装程序首先卸载然后安装服务?也许我对MSI安装程序如何工作有所了解?有没有更好的方法来安装服务?

windows-installer

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

来自Java的Oracle.对象参数的CallableStatement和Null?

我已经开始了,一个相当复杂的存储过程开始归结为一个非常简单的用例,似乎没有像我期望的那样工作.

现在,对于我的测试,存储过程看起来像这样:

CREATE OR REPLACE PROCEDURE proc_test(
v_someString varchar2
                      ) as
BEGIN
    dbms_output.put_line('test');
END;
Run Code Online (Sandbox Code Playgroud)

我可以使用可调用语句API从java调用此存储过程

java.sql.CallableStatement stmt = conn.prepareCall("call proc_test(?)");
stmt.setObject(1,null);
stmt.execute();
Run Code Online (Sandbox Code Playgroud)

以上作品已经过了.该方法执行并成功完成.现在它变得棘手.我们已经创建了一组oracle对象类型,以允许我们传递更复杂的结构,类似于以下内容

CREATE OR REPLACE
type SOMETYPE_TYPE force  UNDER BASE_TYPE (value varchar2(255),
CONSTRUCTOR FUNCTION SOMETYPE_TYPE RETURN SELF AS RESULT) NOT FINAL;
Run Code Online (Sandbox Code Playgroud)

如果我只是将程序更改为接受这些类型作为参数,如下所示:

CREATE OR REPLACE PROCEDURE proc_test(
v_someString SOMETYPE_TYPE 
                      ) as
BEGIN
    dbms_output.put_line('test');
END;
Run Code Online (Sandbox Code Playgroud)

甲骨文将打破 PLS-00306: wrong number or types of arguments in call to 'CNV_CREATE_PERSON'

是什么赋予了?如果我从另一个以null为值的过程调用此过程,它可以正常工作.只从java API调用它才会中断.

我一直在搜索任何解决方案的文档,但找不到.也许你们中的一位聪明才智的学者可以指出我正确的方向.

谢谢

java oracle callable-statement

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

如何将xml的嵌套层次结构转换为sql表

使用MSSQL 2008和XQUERY

考虑存储在表中的以下XML:

<ROOT>
  <WrapperElement>
    <ParentElement ID=1>
      <Title>parent1</Title>
      <Description />
      <ChildElement ID="6">
        <Title>Child 4</Title>
        <Description />
        <StartDate>2010-01-25T00:00:00</StartDate>
        <EndDate>2010-01-25T00:00:00</EndDate>
      </ChildElement>
      <ChildElement ID="0">
        <Title>Child1</Title>
        <Description />
        <StartDate>2010-01-25T00:00:00</StartDate>
        <EndDate>2010-01-25T00:00:00</EndDate>
      </ChildElement>
      <ChildElement ID="8">
        <Title>Child6</Title>
        <Description />
        <StartDate>2010-01-25T00:00:00</StartDate>
        <EndDate>2010-01-25T00:00:00</EndDate>
      </ChildElement>
    </ParentElement>
  </WrapperElement>
</Root>
Run Code Online (Sandbox Code Playgroud)

我想将这个xml分解成类似的东西

PE!ID | PE!Title | PE!Description | CE!ID | CE!Title | CE!StartDate |...
1     | parent1  |                | 6     | child 4  |  2010-... |
1     | parent1  |                | 0     | child1   | 2010-...  |
Run Code Online (Sandbox Code Playgroud)

等等

注意:在此示例中,每个ParentElement可能有许多ChildElements.我一直在尝试使用xquery,但是我无法浏览复杂的元素.

基本上,我正在尝试与FOR XML对表所做的完全相反,只是使用更简单的数据集来处理.

关于下一步该怎么做或如何实现这一点的任何想法?

谢谢

sql xquery sql-server-2008

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

Linq到Datarow,选择多个列是不同的?

基本上我正在尝试将以下mssql查询重现为LINQ

SELECT DISTINCT [TABLENAME], [COLUMNNAME] FROM [DATATABLE]
Run Code Online (Sandbox Code Playgroud)

我最接近的是

Dim query = (From row As DataRow In ds.Tables("DATATABLE").Rows _
                  Select row("COLUMNNAME") ,row("TABLENAME").Distinct
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到了错误

范围变量名称只能从没有参数的简单或限定名称推断.

我有点期待它返回一个集合,然后我可以迭代并为每个条目执行操作.也许是数据集合?

作为一个完整的LINQ newb,我不确定我缺少什么.我尝试过变种

Select new with { row("COLUMNNAME") ,row("TABLENAME")}
Run Code Online (Sandbox Code Playgroud)

得到:

匿名类型成员名称只能从不带参数的简单或限定名称推断.

为了解决这个问题,我试过了

 Dim query = From r In ds.Tables("DATATABLE").AsEnumerable _
        Select New String(1) {r("TABLENAME"), r("COLUMNNAME")} Distinct
Run Code Online (Sandbox Code Playgroud)

但它似乎没有正确地做出独特的事情.

此外,有没有人知道任何好的书籍/资源,以流利?

linq vb.net

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

来自树形式的自引用表的分层数据

看起来在所有简单的情况下都会被问到和回答,不包括那个我遇到麻烦的情况.我尝试过使用递归CTE来生成这个; 但是光标会更好吗?或者也许一组递归函数可以解决这个问题?

这可以在cte中完成吗?

考虑下表

PrimaryKey   ParentKey  
1            NULL       
2            1       
3            6
4            7
5            2
6            1
7            NULL
Run Code Online (Sandbox Code Playgroud)

应该屈服

PK
1
-2
--5
-6
--3
7
-4
Run Code Online (Sandbox Code Playgroud)

其中 - 标记的数量等于深度,我的主要难点是排序.

sql sql-server

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

如何将关联索引添加到数组.C#

我有一系列自定义对象.例如,我希望能够通过特定的数据成员引用此数组myArrary["Item1"]

"Item1"实际上是存储在此自定义类型的Name属性中的值,我可以编写谓词来标记相应的数组项.但是我不清楚如何让数组知道我想使用这个谓词来查找数组项.

我想对这个数组使用字典或散列表或NameValuePair,并解决这个问题,但是它已经生成并且必须保持为CustomObj[].我也试图避免从这个数组加载一个字典,因为它会多次发生,并且可能有很多对象.

为了澄清

myArray[5] = new CustomObj() // easy!
myArray["ItemName"] = new CustomObj(); // how to do this? 
Run Code Online (Sandbox Code Playgroud)

以上可以做到吗?我真的只是在寻找类似于DataRow.Columns["MyColumnName"]工作方式的东西

感谢您的建议.

c# arrays

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