AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-109712

Feillen's questions

Martin Hope
Feillen
Asked: 2017-10-21 03:54:39 +0800 CST

Oracle:根据位置条件(循环)将数据假脱机到不同的文件

  • 0

我正在尝试解决这样的问题

declare
  filename varchar2(100);
begin
  for condition in (select fieldN from mytable) loop
    filename := 'data_for_value'||condition.fieldN||'txt';
    spool filename
    select some_data from some_table where fieldN = condition.fieldN;
    spool off
  end loop;
end;

为了将表中的不同数据部分导出到不同的文件中,但我无法做到正确,我已阅读此内容并尝试执行类似的操作:

set serveroutput on
set pagesize 0
set numwidth 2
set trimspool on

DECLARE
  filename varchar2(100);
BEGIN
  for field2 in (select field2 from blau2) loop
    filename := 'COST_TRAN_BASE '||field2.field2||'.txt';

    spool "run_query.sql" REPLACE

    select distinct 'spool "' || filename || '.txt"' || chr(10) ||
              'select field1, field3 from blau2 where field2 = ' || field2.field2|| ';' || chr(10) ||
              'spool off' cmd
    from blau2;
    spool off
    @"run_query.sql"
  end loop;
END;

但无济于事。我有一种感觉,我不允许spool在我尝试的地方使用命令(我最近开始在 Oracle 环境中工作,SQL*Plus 和 PL/SQL 之间的界限仍然有点模糊(你现在可以杀了我)我的无知:')))

我只是在与不可能的事情作斗争吗?丁:

编辑:

在 Balazs Papp 的初步帮助和我的后续调查下,我想出了这个系统: 使用这个文件:

basic_script.txt
-----------------
SET PAGESIZE 0
SET TRIMSPOOL ON

spool RUN_QUERY.sql REPLACE

select distinct 'set heading off' || chr(10) ||
        'spool "BLAU2 ' || field2 || '.txt"' || chr(10) ||
                'select field1||chr(9)|| field3 from blau2 where field2 = ' || 
field2 || ';' || chr(10) ||
                'spool off'
    from blau2;

spool off
-----------

还有这个其他文件:

basic_script_condition.sql:
-----------
set feedback off
set trimspool on
set recsep off
set serveroutput on

col some_column new_value script_name
select decode((select count(*) from (select distinct FIELD2 from BLAU2)),1,'exit.sql','RUN_QUERY.sql') some_column from dual;
@&script_name
-----------

在一个简单的 .bat 程序中从命令行调用它们:

basic_launcher.bat:
-------------
echo exit | sqlplus lmartin/lmartin @"BASIC_SCRIPT.txt"
echo exit | sqlplus lmartin/lmartin @"BASIC_SCRIPT_CONDITION.sql"
-------------

只有在有数据要导出的情况下,才会生成并执行导出表中不同部分数据的脚本BLAU2(如果没有要导出的数据,basic_script 会生成一个 .sql 文件,no rows selected其内容为,可能重复 N 次,并且执行将失败,因此basic_script_condition.sql控制此行为)。

oracle plsql
  • 2 个回答
  • 13686 Views
Martin Hope
Feillen
Asked: 2017-04-14 02:17:28 +0800 CST

性能:选择 count(*) where... VS select column_name where

  • 1

我将保持场景简单:

  • 有一个应用程序,有一个数据库。
  • 在数据库中,有一张表,记录量很大
  • 我定期向应用程序提供这些记录

现在,一次重新加载可能意味着其中一些更改: i. 第二组中的新记录。更新了第 iii 组中的记录。集合中已删除的记录

最后,对于保持不变的记录,我可以使用比通过 ODBC 读取表快 100 倍的不同进程。

知道这一点后,我试图通过尽可能少地使用 ODBC 来减少重新加载时间,并且在我的算法中途遇到了一个我无法解决的问题。

select count(*) where [condition]**反对速度快多少select columnName where [condition]

为什么?因为只需重新加载新的和更新的记录,我就可以根据[条件]通过计数记录来计算是否有删除。然后,如果有删除,我将不得不从数据库中读取剩下的那些。通常,新记录和更新记录的数量将是整个记录的一小部分。如果计数比普通选择快得多,我可能想将其用作快速检查,因为删除记录不是常见的活动。

performance select
  • 1 个回答
  • 8430 Views
Martin Hope
Feillen
Asked: 2017-01-27 01:32:16 +0800 CST

Access - SQL Server:无法生成 SSPI 上下文

  • 1

我其实明白为什么会弹出此错误消息,但我不知道如何实施我的解决方案。

有一个 SQL Server 网络实例,我提供一些 MS Access 表单进行交互,我自己没有连接问题。这是因为在服务器和数据库中我实际上都使用与我自己的电脑相同的用户名和密码注册,所以 kerberos 身份验证非常有效......直到我与其他人共享 Access 文件,然后他们得到这个错误(因为他们的本地用户没有在服务器和/或数据库中注册)

问题是,我不希望进程使用客户端本地用户和密码来验证连接(或一起使用 kerberos 服务),而是使用数据库本地用户和密码。我最初使用 ODBC 调用将远程表链接到 Access,提供数据库本地用户和密码(不同于我的凭据),我希望它保持这种方式(或足够相似)以便其他人可以打开表单并进行交互与他们一起使用数据库本地凭据。

我只是不知道如何解决这个问题。请帮忙 :'(

发布前的最后一分钟更新:弹出此错误后,系统会提示用户使用连接对话框,他们可以在其中编辑提供的用户名和密码以建立连接。所以问题实际上不是阻挡墙,而是一个不舒服的细节。

但问题仍然存在:有没有办法让它成为默认行为?

sql-server ms-access
  • 1 个回答
  • 1262 Views
Martin Hope
Feillen
Asked: 2017-01-21 06:20:17 +0800 CST

更新 MS Access 链接表中的记录会激活触发器吗?

  • 1

我有一个简单但未记录(或者我找不到解决我的不安的文档)的问题,我希望我来对地方了:

我正在使用 MS Access 作为 SQL Server 的一个糟糕的前端。在这个 Access 文件中,我有一些链接表,这些表将由一些用户在不同的点进行一些编辑,无论是通过表单还是直接访问电子表格视图中的表(我建议不要这样做,但是,嗯......)。

我担心的是:服务器在此表上设置了一些程序,这些程序被编码为在插入/更新时触发。通过 Access 前端进行这些编辑时会触发它们吗?

sql-server trigger
  • 1 个回答
  • 528 Views
Martin Hope
Feillen
Asked: 2016-12-31 02:28:16 +0800 CST

不显示从文件导入的特殊字符

  • 3

该场景是一个 SQL Server 实例,一个主要使用 BULK INSERT 操作提供数据的数据库,并且插入的一些文本包含特殊字符,例如ñ因为我在西班牙环境中工作。

所以,在最初的小测试之后,我意识到当我运行一个简单的 时这些特殊字符没有正确显示select,所以我开始检查我能想到的一切:

  • 文件编码:要批量插入的文件具有正确的编码:ANSI
  • 数据库编码:数据库具有正确的编码(谢天谢地):select collation_name from sys.databases where name='DBNAME';结果SQL_Latin1_General_CP1_CI_AS
    • Latin1:使用的字符集。这很适合我
    • 将军:这里没什么有趣的
    • CP1:这意味着它使用代码页 1,简而言之,这意味着代码页 1252 <=> 用于编码 WIN-1252 的代码页,与 Latin1 非常相似
    • CI:不区分大小写
    • AS:对口音敏感,所以 á 与 a 不同
  • 将数据导出到文件并检查:文件编码为ANSI ,但数据显示不正确,没有特殊字符,而是我发现了一些其他字符,使文本难以阅读。

通过这些测试,我得出的结论是数据没有正确存储,这就是它没有正确显示和导出的原因。我在互联网上找到的几乎所有解决方案都建议使用字符串数据类型字段nvarchar而不是varchar字符串数据类型字段,但这并不能解决这种情况。是什么破坏了我的插入?

sql-server import
  • 2 个回答
  • 6759 Views
Martin Hope
Feillen
Asked: 2016-12-08 02:06:47 +0800 CST

PostgreSQL:通过sql copy语句导入几个.csv文件

  • 1

在托管 PostgreSQL 服务器的服务器中,有一个非常特定的目录,将定期加载一系列 .csv 文件以更新其中一个数据库。我想让上传这些文件中包含的数据的过程尽可能自动化,因此我创建了一个.sh脚本来执行此操作。这是一个简单的for循环,遍历该目录中的 .csv 文件集,并将它们的名称作为参数传递给\COPY句子。

现在,由于服务器管理员对他们的服务器有一点了解,他们想让我们只访问 SQL 服务器而不是底层的 unix 服务器。所以,问题来了:

有没有办法通过从数据库内部执行的存储过程来完成上述任务?你真的能以这种方式从数据库中读取和访问路径及其内容吗?整个 .csv 文件集可能会有所不同,所以我认为硬编码的解决方案不会起作用,而且它看起来很脏(尽管,如果这是我让它工作的唯一方法,那就这样吧)。

我的猜测是你不能但是......你永远不知道。

postgresql
  • 3 个回答
  • 3767 Views
Martin Hope
Feillen
Asked: 2016-11-26 04:08:01 +0800 CST

ms-access:表单和子表单交互的问题

  • 0

有一个绑定到主表的主窗体,public_OUT_Detalle_PMC。并且有一个表单绑定到一个较小的表 public_ficha_negocio,它是较大表中的字段选择。第二个表单用作子表单,我想将对子表单所做的编辑保存到主表中。

我曾尝试使用简单的 SQL 更新查询,但由于某些未知原因,我无法使其正常工作,这让我发疯。

    Dim db As DAO.Database
    Dim qdfFN As DAO.QueryDef
    Dim rsFN As DAO.Recordset
    Set db = CurrentDb
    Set qdfFN = db.CreateQueryDef("")
    qdfFN.sql = "select * from [public_ficha_negocio] where [Codigo_RQM_Necesidad]='" & Me.Codigo_filtro.value & "';"
    qdfFN.ReturnsRecords = True
    Set rsFN = qdfFN.OpenRecordset
    Dim qdf As DAO.QueryDef
    Dim sSQL As String
    sSQL = "UPDATE [public_OUT_Detalle_PMC] SET " & _
              {a lot of fields are updated, I cut them out of the paste for simplicity}
              "WHERE [public_OUT_Detalle_PMC].[Codigo_RQM_Necesidad] = '" & rsFN!Codigo_RQM_Necesidad & "');"
    Set qdf = db.CreateQueryDef("", sSQL)
    qdf.Execute dbFailOnError
    qdf.Close
    qdfFN.Close
    rsFN.Close
    Set qdfFN = Nothing
    Set rsFN = Nothing
    Set qdf = Nothing

该查询qdfFN用于检索较小表的记录,我想将哪些数据“传递”到较大表。该查询qdf要么不起作用,要么我不了解如何使用这些 vba 对象。

我曾经Debug.print检查过的值rsFN并且它们是正确的,我的意思是,我想传递到更大的表上的值就在那里!这让我头疼

ms-access vba
  • 1 个回答
  • 127 Views
Martin Hope
Feillen
Asked: 2016-11-05 04:25:12 +0800 CST

psql:无法连接到服务器:没有这样的文件或目录

  • 1

我知道这是一个重复发布的问题,但我一直无法找到适合我的答案。

PostgreSQL 9.5 运行良好,有人决定我们需要编辑 pg_hba.conf 文件并重新启动服务,所以我们这样做了。从那时起,在尝试连接到数据库时会出现这个不祥的错误消息(我们试图恢复更改并重新启动服务,但这并没有解决它)。看起来该进程正在运行,因为

service --status-all

显示 postgres 正在运行,如[ + ] postgresql

但是,如果我跑

service postgres status

输出看起来像这样(开头的黑点实际上是绿色的):

● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2016-11-04 11:49:18 UTC; 27min ago
Main PID: 1079 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
  CPU: 0
CGroup: /system.slice/postgresql.service

Nov 04 11:49:18 kissdb systemd[1]: Starting PostgreSQL RDBMS...
Nov 04 11:49:18 kissdb systemd[1]: Started PostgreSQL RDBMS.

但是,当我尝试在ps输出中查找进程的 PID 时......找不到,所以我最好的猜测是,有些东西正在告诉服务正在运行,而实际上并没有运行,我不知道如何让我的手解决这个问题。

此外,我似乎无法访问pg_ctl,postgres命令,并且 中没有/var/目录/usr/local/,我想这应该令人担忧,因为我研究过的几乎每个给定答案都提到了它。

请有人帮助我:(我可以提供您可能需要的更多信息,我真的不知道发生了什么,所以我不确定我是否已经提供了必要的信息让某人知道问题出在哪里.

postgresql ubuntu
  • 1 个回答
  • 1456 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve