小编Wil*_*son的帖子

LEFT JOIN 从左表中获取所有行,无论连接条件如何

我正在尝试执行左连接,以便从左表中获取所有行,即使这些行的连接条件不成立。

示例:下面的 Aid = Bid 但表 B 只有 3 个 id

在此输入图像描述

我正在使用的查询仅给出连接条件为真的行。即使连接条件不成立,有没有办法从左表中获取所有行?

我的查询:

SELECT Table1.Aid,
       Table2.Bid,
       Table2.Issueid
  FROM Table1
       LEFT JOIN Table2 ON Table1.Aid = Table2.Bid;

 WHERE Table2.Issueid IN (
    'a',
    'b'
)
Run Code Online (Sandbox Code Playgroud)

sql oracle join oracle-sqldeveloper

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

PLSql返回值

在这里,我再次使用一些PLSql ..

我想知道,如果有任何方法我可以使用以下函数,如select而不必将其转换为函数或过程(因此我可以从包含它的脚本中看到代码).

代码如下:

DECLARE
    outpt  VARCHAR2(1000) := ''; 
    flow_rI  VARCHAR2(50); 
    CURSOR flow_r IS
      select flow_run_id
        from table
        where CREATED_DATE < sysdate - 32
        and rownum < 10
        order by 1 desc;
BEGIN 
    OPEN flow_r;
    LOOP 
        FETCH flow_r INTO flow_rI; 
        EXIT WHEN flow_r%notfound; 
        BEGIN 
            outpt := outpt ||  ',' || flow_rI;
        EXCEPTION 
            WHEN no_data_found THEN 
              dbms_output.Put_line(outpt); 
        END; 
    END LOOP;
    dbms_output.Put_line(outpt); 
    outpt := '';
    CLOSE flow_r;
END;
Run Code Online (Sandbox Code Playgroud)

这个想法很简单,我只想从我那里得到一系列代码,table但是结果的格式就像是"1234,2434,424,45,767,43"一种东西,而不是查询的表格结果.它将在稍后的代码中用于各种目的,包括我可以简单地执行的另一个查询in ([variable with that string]).

事情是,使用dbms_output.Put_line(outpt);,我无法从我的应用程序层访问它,似乎在plsql我不能使用 …

string oracle plsql

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

dbms_output语句中的单引号?

我需要在dbms_output语句中包含单引号.我试过这个:

 dbms_output.put_line('\''first_name||'\'');
Run Code Online (Sandbox Code Playgroud)

这里first_name是variable; 我需要在单引号内显示​​这个.

plsql oracle11g

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

Oracle 查询 all_tab_columns.data_default(类型 LONG)

我已经运行了这个查询:

SELECT
    OWNER,
    TABLE_NAME,
    COLUMN_NAME,
    DATA_TYPE,
    DATA_LENGTH,
    (CASE
        WHEN DATA_PRECISION IS NULL THEN 0
        ELSE DATA_PRECISION
     END) DATA_PRECISION,
    (CASE
        WHEN DATA_SCALE IS NULL THEN 0
        ELSE DATA_SCALE
     END) DATA_SCALE,
    NULLABLE,
    COLUMN_ID
    DEFAULT_LENGTH,
    DATA_DEFAULT,
    (CASE
        WHEN DATA_DEFAULT IS NULL THEN '0'
        ELSE DATA_DEFAULT
     END) DATA_DEFAULT1
FROM 
    all_tab_columns
WHERE 
    table_name LIKE 'TABLE1';
Run Code Online (Sandbox Code Playgroud)

但它在 column 引发错误DATA_DEFAULT

ORA-00932:不一致的数据类型:预期的 CHAR 得到了 LONG
00932。00000 - “不一致的数据类型:预期的 %s 得到了 %s”

我该如何解决?

谢谢!

sql oracle

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

如何否定案件内部

我在plsql中有点新,所以你能告诉我它存在一种否定案例的方法吗?我的意思是,这样:

 select CASE DENOM_CURRENCY_CODE
            WHEN != 'MXN' THEN 'convert to USD'
            ELSE TO_CHAR(QUANTITY) --keep the quantity
        END 
Run Code Online (Sandbox Code Playgroud)

我收到了这个消息"ORA-00936:缺少表达"我也试过"<>"和"不是".谢谢阅读

oracle plsql case

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

解释计划中的成本,基数和字节是什么意思?

这是一个简单的查询: select * from customers

当我在PL/SQL Developer中编写此查询并按F5时,我会看到解释计划,但我不知道成本,基数和字节代表什么.

oracle plsqldeveloper sql-tuning

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

迭代 Oracle 中的对象表

我应该如何迭代这样的对象表?

CREATE TYPE SOME_OBJECT AS OBJECT (
  ATTR1 VARCHAR2(20)
, ATTR2 VARCHAR2(30)
);
/

CREATE TYPE C_SOME_OBJECT AS TABLE OF SOME_OBJECT;
/
Run Code Online (Sandbox Code Playgroud)

而且...我想将其用作过程的参数。必须在程序中初始化它吗?

PROCEDURE SOME_PROCEDURE(OBJECT IN C_SOME_OBJECT)
IS
BEGIN
  --Some code here iterating IN parameter
END;
Run Code Online (Sandbox Code Playgroud)

oracle plsql

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

Oracle 搜索视图文本

我有超过 1000 个视图,我想运行一个搜索,该搜索将显示abc在其 SQL 中包含字符串的视图的名称。如何搜索所有存储过程/SQL,包括我的视图?当我运行命令时:

SELECT *
FROM   all_source
WHERE  text LIKE '%abc%'
Run Code Online (Sandbox Code Playgroud)

它返回我abc存在字符串的源代码。但这不包括视图。

oracle oracle10g oracle11g

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

Intellij IDEA 2018.2 无法识别带有 JDK 10 的 JavaFX 包

我已经搜索过,但没有找到任何关于它的详细信息。在http://www.oracle.com/technetwork/java/javafx/downloads/index.html它说

从 JDK 7u6 开始,JavaFX 包含在标准 JDK 和 JRE 包中

但是我在编译代码包含javafx.*包时出错。包不是成立的。我正在使用 Oracle JDK 10.0.2 和 Intellij Idea 2018.2。添加$JAVA8_HOME/jre/lib/ext/jfxrt.jaras 库后,代码就可以工作了。

但奇怪的是,我能够构建代码以针对字节码版本 8,而无需像上面那样添加来自 JDK 8 的 jar 文件

所以问题是

如何获得最新的 JavaFX?

最新的 JavaFX 是否在 JDK 8 中?

更新

JDK 10 包含 JavaFX 并在命令行中成功编译和运行。Intellij IDEA 2018.2 有问题。它无法识别 JavaFX 包。

Intellij 中的错误消息:

错误:(3, 26) java: 包 javafx.application 不存在

注意:在编辑器中编码时没有错误(不为红色)。在 Intellij 中编译时发生错误。

更新了问题标题。

java javafx version intellij-idea

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

将数字格式化为货币金额

我想为我的 SQL 披萨餐厅数据库创建一份“销售报告”。当我尝试使用 sum(order_amount) 运行 SELECT 查询时,该列未格式化。我正在使用 Oracle SQL。这是代码:

column order_amount heading "Order Amount" format '$9,999,999.00';
select order_id, count(order_id) as "Number of Orders", sum(pizza_quantity) as "Pizzas Sold", 
sum(order_amount) as "Total Profit"
from order_details group by order_id;
Run Code Online (Sandbox Code Playgroud)

这是输出:

SQL> select order_id, count(order_id) as "Number of Orders",sum(pizza_quantity) as "Pizzas Sold",
  2  sum(order_amount) as "Total Profit"
  3  from order_details group by order_id;

  Order ID Number of Orders Pizzas Sold Total Profit
---------- ---------------- ----------- ------------
         1                2           5          105
         6                1           2           20 …
Run Code Online (Sandbox Code Playgroud)

sql oracle sqlplus

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