小编Noe*_*oel的帖子

Group By Statement中的重复列

我正在尝试将此Oracle Discoverer创建的SQL脚本转换为可以从发现者外部运行的查询.当我尝试运行脚本时,我收到以下错误:

:因为它包含以下重复的列名的SQL语句是无效的 LEAF_DETAILS,LEAF_DETAILS_DESCR,LEAF_DETAILS,LEAF_DETAILS_DESCR.通过为列提供别名来更正语句.

我必须转换大约100个这些脚本,所以我正在寻找一种方法来轻松修改此脚本输出而无需重建每个脚本.有任何想法吗?

  SELECT O1890255.LEAF_DETAILS,
         O1890286.ACTIVITY,
         O1890258.LEAF_DETAILS_DESCR,
         O1890261.LEAF_DETAILS,
         O1890261.LEAF_DETAILS_DESCR,
         O1890286.BUSINESS_UNIT,
         O1890286.PROJECT_DESCR,
         O1890287.PROJECT_ID,
         O1890288.LEAF_DETAILS,
         O1890288.LEAF_DETAILS_DESCR,
         O1890287.SUB_PROJECT,
         O1890287.SYSTEM_SOURCE,
         O1890287.YEAR,
         SUM (O1890287.RESOURCE_AMT_BUD),
         SUM (O1890287.RESOURCE_AMT_ACT),
           (SUM (
               DECODE (O1890287.ACCOUNTING_PERIOD,
                       '8', O1890287.RESOURCE_AMT_ACT,
                       0)))
         - (SUM (
               DECODE (O1890287.ACCOUNTING_PERIOD,
                       '8', O1890287.RESOURCE_AMT_BUD,
                       0))),
         SUM (
            DECODE (O1890287.ACCOUNTING_PERIOD,
                    '8', O1890287.RESOURCE_AMT_BUD,
                    0)),
         SUM (
            DECODE (O1890287.ACCOUNTING_PERIOD,
                    '8', O1890287.RESOURCE_AMT_ACT,
                    0)),
         SUM (O1890287.RESOURCE_AMT_ACT - O1890287.RESOURCE_AMT_BUD)
    FROM WAREHOUSE.PPL_RPTD_COST_MGMT01JAN00 O1890255,
         WAREHOUSE.PPL_RPTD_ACTIVITY_BUDG O1890258,
         WAREHOUSE.PPL_RPTD_BUD_ITEMS01JAN00 O1890261,
         WAREHOUSE.PROJECT_DENORMAL_GEN O1890286,
         WAREHOUSE.PROJ_RES_DENORMAL_GEN O1890287,
         WAREHOUSE.SRC_TREE_VW O1890288
   WHERE     (    (O1890255.LEAF_DETAILS = …
Run Code Online (Sandbox Code Playgroud)

sql oracle11g

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

嵌套函数中的变量范围

有人可以解释为什么以下程序失败:

def g(f):
  for _ in range(10):
    f()

def main():
  x = 10
  def f():
    print x
    x = x + 1
  g(f)

if __name__ == '__main__':
  main()
Run Code Online (Sandbox Code Playgroud)

随着消息:

Traceback (most recent call last):
  File "a.py", line 13, in <module>
    main()
  File "a.py", line 10, in main
    g(f)
  File "a.py", line 3, in g
    f()
  File "a.py", line 8, in f
    print x
UnboundLocalError: local variable 'x' referenced before assignment
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是将变量更改为x数组,它的工作原理如下:

def g(f):
  for _ in range(10):
    f() …
Run Code Online (Sandbox Code Playgroud)

python scope nested-function

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

在记事本++中只保留一行中的前8个字符

我在Notepad ++中保留前8个字符时遇到了麻烦.

我有一个这样的列表:

johndoe2.21test
markdoetesting.new
marvin213.jo.hn
abcd1234.dcba
Run Code Online (Sandbox Code Playgroud)

我想要一个像这样的输出:

johndoe2
markdoet
marvin21
abcd1234
Run Code Online (Sandbox Code Playgroud)

你能为我指出正确的方向吗 ?

regex notepad++

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

关于Oracle 12c中的用户

我在我的系统上安装了Oracle 12c数据库.我有一个需要访问数据库的应用程序.

以前在Oracle 11g中,我使用以下命令来创建用户.

create user name identified by name;  
grant connect,create session,resource,create view to name;
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何在Oracle 12c中创建具有上述要求的用户?我使用了以下语句,但我的安装显示致命错误

FATAL ERROR - java.sql.SQLException: ORA-01950: no privileges on tablespace 'USERS'
Run Code Online (Sandbox Code Playgroud)

以下是使用的陈述.

create user c##test1 identified by test1 container = ALL;
grant connect,create session,resource,create view to test1;
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle12c

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

如何在hibernate中使用listagg

我正在尝试使用listagg函数生成用户列表.

请考虑下表

 ROLE_ID    ENAME
---------- ----------
       4    CLARK
       4    KING
       4    MILLER
       7    ADAMS
       9    FORD
       9    JONES
Run Code Online (Sandbox Code Playgroud)

在SQL Developer中使用以下查询

SELECT ROLE_ID,
       LISTAGG(ENAME, ',') WITHIN GROUP (ORDER BY ENAME) AS EMPLOYEES 
FROM USERS 
GROUP BY ROLE_ID;
Run Code Online (Sandbox Code Playgroud)

将导致控制台输出中的以下内容

ROLE_ID EMPLOYEES
-----------------------------
4        CLARK,KING,MILLER
7        ADAMS
9        FORD, JONES
Run Code Online (Sandbox Code Playgroud)

我的目标是尝试在休眠中执行此操作,但我不确定如何继续.任何帮助表示赞赏.

sql hibernate oracle11g

6
推荐指数
2
解决办法
5106
查看次数

正则表达式单词,用于匹配包含以“ing”结尾的单词的文本,但排除单词“anything”、“something”、“nothing”

我正在编写一个应用程序来练习英语,我需要一个 javascript 正则表达式来查找 mongoDb 集合中的所有文档,其中“answer”属性包含以ing结尾的单词,并从匹配中排除一些单词,例如 everything、something ,任何事,什么都没有。

我现在有以下查询:

{ '$or': [ { answer: /ing/i } ],
I20190303-13:26:00.915(-4)?   answer: /^(?!.*(\bsomething\b|\banything\b|\beverything\b|\bthing\b|\bnothing\b))/gi }
Run Code Online (Sandbox Code Playgroud)

不幸的是,我当前的查询不包括诸如“我什么也没做”之类的字符串。因为文中什么都没有。但我希望这样的文本能够匹配,因为“做”是存在的。

我想从数据库中获取答案包含一个或多个动名词的所有问题,不幸的是有些以ing结尾的单词不是动名词。

javascript regex mongodb regex-lookarounds

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

如何在MySQL中撤消对新用户的*。*访问权限?

在mysql 5.6命令行客户端(以root用户身份登录时),我创建了一个用户:

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式授予特权:

GRANT ALL PRIVILEGES ON databasename.* TO 'admin'@'localhost';
Run Code Online (Sandbox Code Playgroud)

使用以下命令检查特权时:

SHOW GRANTS FOR 'admin'@'localhost';
Run Code Online (Sandbox Code Playgroud)

显示了上面分配的数据库的特权以及以下特权:

GRANT USAGE ON *.* TO 'admin'@'localhost' IDENTIFIED BY PASSWORD...
Run Code Online (Sandbox Code Playgroud)

我试图通过以下方式撤销特权:

REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'admin'@'localhost';
Run Code Online (Sandbox Code Playgroud)

但这并不会删除 *.*

我如何撤消*.*mysql中新用户的访问权限?

mysql privileges grant

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

如何在lua中将windows-1256转换为utf-8?

我需要将阿拉伯文本从 windows-1256 转换为 utf-8 我该怎么做?有什么帮助吗?

谢谢

lua utf-8 character-encoding

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

在blob表的触发器中计算blob哈希

我的环境是Oracle 11g.我有一个表T_IMG,其列是图像blob,图像标识符,图像的哈希计算为SHA256.我希望每次在T_IMG表中插入或更新行时计算图像哈希并将其插入到T_IMG表中.为此,我在T_IMG表上使用插入或更新的before触发器,但是我很难访问触发器内的图像blob列.

CREATE TABLE TEST.T_IMG
(
    IDN       VARCHAR2(18 BYTE)      NOT NULL,
    IMG       BLOB                   NOT NULL,
    IMGHASH   VARCHAR2(128 BYTE)
);
Run Code Online (Sandbox Code Playgroud)

字符串和blob的SHA256哈希值由以下代码计算,该代码基于Sean Stuber在http://seanstuber.wordpress.com/2012/03/22/using-java-to-extend-dbms_crypto/上的示例

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED sha2 AS
import java.security.MessageDigest;
import oracle.sql.*;
public class sha2
{
    public static oracle.sql.RAW get_digest_string( String p_string, int p_bits ) throws Exception
    {
        MessageDigest v_md = MessageDigest.getInstance( "SHA-" + p_bits );
        byte[] v_digest;
        v_digest = v_md.digest( p_string.getBytes( "UTF-8" ) );
        return RAW.newRAW(v_digest);
    }

    public static oracle.sql.RAW get_digest_blob( oracle.sql.BLOB p_blob, int …
Run Code Online (Sandbox Code Playgroud)

oracle blob sha2 oracle11gr2 database-trigger

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

Postgis SQL为最近邻居

我正在尝试计算最近的邻居.为此,我需要传递一个参数来限制与邻居的最大距离.例如,哪些是半径1000米内最近的邻居?

我做了以下事情:

我用数据创建了我的表:

id | name | latitude | longitude
Run Code Online (Sandbox Code Playgroud)

之后,我执行了以下查询:

SELECT AddGeometryColumn ( 'public' , ' green ', ' geom ' , 4326 , ' POINT' , 2 );

UPDATE season
SET geom = ST_Transform(ST_PointFromText ('POINT (' || longitude || ' ' || latitude || ')', 4269), 4326);
Run Code Online (Sandbox Code Playgroud)

第一个问题,巴西的SRID是4326吗?什么是4269?

第二个问题,通过执行以下SQL

SELECT id, name
FROM season
WHERE ST_DWithin (
                 geom ,
                 ST_GeomFromText ('POINT(-49.2653819 -25.4244287 )', 4326),
                 1000
                 );
Run Code Online (Sandbox Code Playgroud)

这什么都不返回.据我所知,这个SQL会进一步指向最大距离的半径,对吧?

如果您将1000个结果显示为100000000,则会显示所有条目.

所以,我想知道这里有什么问题?

sql postgresql postgis

5
推荐指数
2
解决办法
3870
查看次数