精华内容
下载资源
问答
  • matinal)写在前面我们平常都是用SAP HANA Studio来连接数据库、创建新表、导入数据、执行查询等工作,众所周知,SAP HANA是运行在SUSE上的,而SUSE本身是Linux的一个发行版,因此大家肯定会想是否可以通过命令行...

    74fcd638fbaabc0462f887047543985e.png

    -苟志于仁矣,无恶也。(更多知识关注公众号:matinal

    写在前面

    我们平常都是用SAP HANA Studio来连接数据库、创建新表、导入数据、执行查询等工作,众所周知,SAP HANA是运行在SUSE上的,而SUSE本身是Linux的一个发行版,因此大家肯定会想是否可以通过命令行或者SHELL脚本管理和操纵数据库。答案当然是YES,SAP HANA提供了HDBSQL用于数据库的管理、查询和其他一些工作。下面我们就来看看具体的使用。这篇文章是一个朋友很早以前写的,拿出来和大家分享一下。

    命令行工具

    SAP HANA的命令行工具主要是hdbsql,可以交互式或非交互式运行,还可以从文件导入命令执行。我们首先来看看如何交互式运行命令。我们现在已经有了一个SAP HANA数据库。进入到命令行后我们需要切换到HANA安装时创建的用户,我们将切换到这个用户名:su – a17adm。然后输入hdbsql,我们就进入了交互式界面,如下图所示。如果你用过MySQL的命令行,应该会觉得似曾相识,确实它们大同小异。本文的测试案例所使用的SAP HANA版本为SAP HANA SPS6 Revision 60.00。

    9c2f6c87cfc325283e3a72f5e824a93b.png
    matinal

    为了交互式执行命令,必须首先登录到数据库。有两种方式,一种是进入hdbsql后登录。假设我们需要登录的数据库在本机,实例是01。为简单起见,我们就用系统管理员用户名SYSTEM,密码manager,则使用c选项登录,如下图所示。

    0038508ab37c10fd816e7caf050402d9.png
    matinal

    或者还可以在执行hdbsql时直接登录到数据库:hdbsql –n localhost -i 01 –u SYSTEM –p manager。

    3c05e764955f00853e8537b20fb9423f.png
    matinal

    除了-n,-i等参数,还有其他一些参数你很可能也会用得着。可以运行hdbsql –help查看所有选项列表。

    3e24f063e1860cf07a4cfc0e93b41229.png
    matinal

    好,现在我们可以尝试执行一些命令了。首先我们使用s看一下数据库的状态:

    ef474665075d0b324ed1e2597a1a890b.png
    matinal

    这里列出了主机名、数据库名、输入编码等一些基本信息。

    如果你忘记了可以使用的基本命令,可以输入?或者h寻求帮助。

    4a62c97d14bc18b5be42a32528ba4313.png
    matinal

    我们举几个常用的命令演示它的用法,其它的可以参考SAP HANA administration guide文档。dc命令不加参数列出数据库中所有的表信息,包括表名称、字段名、字段类型、字段长度、字段是否可空、主键等,还可以加参数列出某个schema下的表信息,可使用正则表达式,%匹配零个或多个字符,而_匹配一个字符。比如我们想看SYS下D开头的所有表:dc SYS.D%。

    6bbd8bf52d221897932fe3f3a7309ce2.png
    matinal

    和MySQL类似,我们可以直接执行SQL命令,只是不需要以分号结束:

    SELECT ID, PRICE FROM CLOTHES_MATCHING.CLOTHES_IMAGE

    377d383cef7b97aa328600f4c23f6515.png
    matinal

    查询结果的显示是不是和MySQL有点像?我们看到显示结果虽然美观,但是不方便后期处理,相比之下我们更愿意在文件中处理这些数据,更方便的是显示成csv文件的格式,这个时候我们使用al OFF就可以达到目的。这时的结果如下,更方便使用gawk进行进一步的处理了。

    b2524afc98dad28a89d8cc20cb98fa32.png
    matinal

    为了将结果写入文件,o就派上用场了,它可以将查询结果重定向到指定的文件中,注意,如果文件已经存在,它会将数据附加到文件尾部而不会将其覆盖。

    综合实例

    下面我们用一个综合性的例子,结合hdbsql和SHELL脚本来完成一些简单的任务。我们的目标是完成数据库表的建立、导入一些数据、执行一些查询以表明我们的数据已成功导入并可以用来做一些实际的工作了。

    假设我们要建立一个描述客户相关信息的表,其中包括客户编号、客户名、邮编、地址、联系方式这些信息。

    CREATE SCHEMA HDBSQL_TEST;
    
    CREATE TABLE HDBSQL_TEST.CUSTOMER
    (
    
                   ID INTEGER NOT NULL PRIMARY KEY,
                   NAME NVARCHAR(50),
                   ZIP NVARCHAR(20),
                   ADDRESS NVARCHAR(100),
                   TELEPHONE NVARCHAR(20)
    );

    然后我们准备一些数据,比如data.csv

    1001,”Hugh Jackman”,”10086″,”北京市朝阳区xxxxx街“,”6589xxxx”
    
    1011,”Tom Cruise”,”10080″,”朝阳区广顺北大街xxxxx区“,”6589xxxx”
    
    1342,”Dwayne Johnson”,”10081″,”北京市朝阳区霄云路“,”6589xxxx”
    
    1344,”Jennifer Aniston”,”10082″,”北京市东城区xxxxx大街“,”5678xxxx”
    
    1111,”Jennifer Lopez”,”20013″,”北京市海淀区xxxxx路“,”7623xxxx”
    
    1012,”Megan Fox”,”103421″,”纽约市华尔街2号“,”5671xxxx”
    
    1317,”Taylor Swift”,”13482″,”芝加哥市“,”5432xxxx”
    
    1042,”Bill Clinton”,”23193″,”华盛顿特区宾夕法尼亚大道1600号“,”202-456-xxxx”
    
    1043,”George W. Bush”,”23193″,”华盛顿特区宾夕法尼亚大道1600号“,”202-456-xxxx”
    
    1044,”Barack Obama”,”23193″,”华盛顿特区宾夕法尼亚大道1600号“,”202-456-xxxx”

    我们使用import导入数据,其中假设数据文件在/home/Alex,文件格式是标准的csv。

    IMPORT FROM CSV FILE ‘/home/xxxxx/data.csv’ INTO “HDBSQL_TEST”.“CUSTOMER” WITH RECORD DELIMITED BY ‘n’ FIELD DELIMITED BY ‘,’;

    假设我们想要知道在华盛顿的客户信息,则

    SELECT NAME, ADDRESS FROM “HDBSQL_TEST”.“CUSTOMER” WHERE ADDRESS LIKE ‘%华盛顿%’;

    我们把查询信息保存到文件里,例如out.txt,这样就便于使用gawk等工具进行下一步的处理了。

    我们建立一个SHELL脚本test.sh来执行所有这些工作:建立数据库表,导入数据,执行查询,得到结果。我们在hdbsql命令行中用-B和-resultencoding指明输入和输出都是UTF8格式以避免可能产生的乱码问题。

    #!/bin/bash
    
    host=localhost
    
    instance=1
    
    username=SYSTEM
    
    password=manager
    
    cmdFile=cmd.txt
    
    outputFile=out.txt
    
    encoding=UTF8
    
    HDBSQL=`which hdbsql`
    
    $HDBSQL -n $host -i $instance -u $username -p $password -B $encoding -resultencoding $encoding -I $cmdFile -o $outputFile
    
    if [ $? -eq 0 ]
    
    then
    
             count=`gawk ‘BEGIN{count = 0;} {if(NR > 1) count++;} END{print count}’ $ outputFile`
    
            echo “执行成功,总共有 $count 位客户符合条件“
    
    fi

    其中要执行的命令放到cmd.txt文件中

    CREATE SCHEMA HDBSQL_TEST;
    
    CREATE TABLE HDBSQL_TEST.CUSTOMER
    (
           ID INTEGER NOT NULL PRIMARY KEY,
           NAME NVARCHAR(50),
           ZIP NVARCHAR(20),
           ADDRESS NVARCHAR(100),
           TELEPHONE NVARCHAR(20)
    );
    
    IMPORT FROM CSV FILE ‘/home/xxxxx/data.csv’ INTO “HDBSQL_TEST”.”CUSTOMER” WITH RECORD DELIMITED BY ‘n’ FIELD DELIMITED BY ‘,’;
    
    al OFF;
    
    SELECT NAME, ADDRESS FROM “HDBSQL_TEST”.”CUSTOMER” WHERE ADDRESS LIKE ‘%华盛顿%’;

    运行./test.sh 1>output.txt 2>error.txt。

    现在打开out.txt文件,

    8a2413a35d27fb74df70a200c73a7ecf.png
    matinal

    我们得到了想要的结果。如果出现错误,错误信息会写入error.txt文件,帮助定位问题。

    现在我们将hdbsql集成到SHELL脚本中,你可以把它放到cron任务列表来定期执行,或者用gawk对生成的结果进一步处理生成统计报告,发送每日邮件等,一切都很方便。

    fbb8d7a4e40383f7833a64fa7dd0c7b5.png
    matinal
    展开全文
  • 本系列博客汇总在这里:MySql汇总 概述一、打开终端二、查看数据库命令三、使用指定数据库四、查看数据库内的表五、查看表数据 一、打开终端 注意:不是 cmd!...查询的语法同oracle一致。 如有...

    本系列博客汇总在这里:MySql汇总


    一、打开终端

    注意:不是 cmd!!- _-||
    在这里插入图片描述

    二、查看数据库命令

    show databases
    在这里插入图片描述

    三、使用指定数据库

    语法:use 数据库名,切换数据库。
    在这里插入图片描述

    四、查看数据库内的表

    语法:show tables
    在这里插入图片描述

    五、查看表数据

    查询的语法同oracle一致。
    在这里插入图片描述
    如有错误,欢迎指正!

    展开全文
  • 1.问题 数据库出现问题,但是没有PLSQL等界面工具可用 2.诊断 只能使用命令行进行操作 3.处理 1)、登陆oracle数据库用户 ...su - oracle ...3)、 连接数据库实例 ...查询尽量使用字段名来替代*进行查询,...

    1.问题

    数据库出现问题,但是没有PLSQL等界面工具可用

    2.诊断

    只能使用命令行进行操作

    3.处理

    1)、登陆oracle数据库用户

    su - oracle 

    2)、使用sqlplus登陆

    sqlplus "/as sysdba"

     3)、 连接数据库实例

    conn username/password

    连接成功后即可进行操作。

    查询尽量使用字段名来替代*进行查询,因为命令行的排版问题,过多的字段展示会导致展示结果错乱。

    实在因为展示的宽度不够,导致展示自动换行不容易看清时,可以设置结果窗口的宽度。

    set linesize = 12000

    避免对clob字段的展示。

    展开全文
  • 使用SQL*Plus连接Oracle数据库服务器SQL*Plus是交互式查询工具,我们在安装Oracle数据库服务器或客户端时会自动安装。SQL*Plus有一个命令行界面,允许您连接Oracle数据库服务器并交互执行语句。注意:如果有使用过...

    如何连接到Oracle数据库?

    使用SQL * Plus连接Oracle数据库服务器

    SQL * Plus是交互式查询工具,我们在安装Oracle数据库服务器或客户端时会自动安装。SQL * Plus有一个命令行界面,允许您连接到Oracle数据库服务器并交互执行语句。

    注意:如果有使用过MySQL或PostgreSQL,SQL * plus与MySQL中的mysql程序或PostgreSQL中的psql类似。

    我们可以在终端输入sqlplus命令,以此来在Linux或Window中启动SQL * Plus。

    sqlplus

    以Windows 10系统为例,在Windows的“开始”菜单的“程序”文件夹中找到SQL * Plus程序,如下所示:

    format,png

    启动SQLPlus图标时,会提示输入用户名和密码。输入在安装Oracle数据库服务器期间设置的用户名和密码。如果不知道要使用哪个帐户,请询问安装数据库的管理员。

    假设要使用sys帐户连接到本地Oracle数据库服务器,请输入以下信息:

    format,png

    按下Enter后,您应该看到一条消息,后面跟着SQL>命令行,如下所示:

    format,png

    如上图所示,您已成功连接到Oracle数据库服务器。

    在Oracle 12c中,当连接到数据库服务器时,默认数据库是名为CDB$ROOT的ROOT容器数据库。 要显示数据库名称,请使用SHOW命令:

    SQL>SHOWcon_name;CON_NAME------------------------------CDB$ROOT

    如果要切换到可插拔数据库,请使用ALTER SESSION语句将当前数据库设置为可插入数据库,例如:PDBORDL,如下所示:

    SQL>ALTERSESSIONSETCONTAINER= PDBORCL;Session altered.

    现在,您连接到PDBORCL数据库。

    要断开用户与Oracle数据库服务器的连接,请使用EXIT命令:

    SQL> EXIT

    要将OT用户连接到位于PDBORCL可插拔数据库中的示例数据库,请输入以下命令:

    sqlplus OT@PDBORCL

    SQL Plus会提示输入OT用户的密码。输入密码,您将连接到Oracle数据库服务器中的PDBORCL* 数据库。

    使用SQL Developer连接到Oracle数据库服务器

    SQL Developer是一个用于在Oracle数据库中使用SQL的免费GUI工具。与SQL * Plus程序一样,SQL Developer在安装Oracle数据库服务器或客户端时自动安装。

    要启动SQL Developer程序,请单击开始菜单中Oracle程序文件夹中的SQL Developer图标,如下图所示:

    format,png

    以下显示了SQL Developer程序:

    要创建一个新的数据库连接:

    (1)首先,单击新建按钮或按下Ctrl-N;

    (2)然后,选择数据库连接选项并单击 确定 按钮。

    将显示一个新建/选择数据库连接 对话框,在这个对话框中,您需要输入以下信息:

    第一步,输入以下信息:

    ● 连接名称,它可以是任何您喜欢的名字,这里使用对话框中显示为OT 。

    ● 用户名和密码,在这个示例中是:ot/Orcl1234。

    ● 通过选中保存密码复选框来保存密码。

    第二步,选择TNS作为连接类型。

    第三步,选择TNS连接类型后将显示“网络别名”列表。只要选择PDBORCL作为网络别名。 通过这样做,可以明确指定要连接的可插拔数据库PDBORCL。

    第四步,单击测试 按钮来测试数据库连接。 如果看到状态:成功消息,则准备好连接到Oracle数据库服务器。

    为了节省时间再次输入所有的连接参数,点击保存按钮。 连接将被保存并显示在对话框的左侧。每当想重新连接,你只需要点击保存的连接,所有的参数将被自动填写。

    现在,可以单击连接(Connect)按钮连接到Oracle数据库服务器。

    双击Connections> OT> Tables,将看到OT样本数据库中的所有表格。

    展开全文
  • Oracle笔记 二、常用dba命令行 1、给用户解锁 alter user scott account unlock; 2、注销、断开、切换当前用户连接 quit conn scott/tiger 3、用户权限查询 A .查看所有用户: select * from...
  • 关系数据库标准语言SQL(结构化查询语言),其功能不仅仅是查询——增删改查; 1 SQL> connect system/lixiang666 已连接。 SQL> create user lixiang identified by pass123; 用户已创建。 SQL> grant ...
  • 如何查询Oracle数据库版本

    千次阅读 2011-08-31 11:15:22
    如何查询Oracle数据库版本 介绍查询Oracle数据库版本的方法。 在命令终端执行如下命令:su - oracle 切换到oracle用户,密码为...在命令窗口中执行如下命令连接到isql命令行,并启动数据库。 sqlplus / as sy
  • Oracle:子查询、排序

    2020-10-07 22:58:36
    CMD命令行连接Oracle数据库 1、使用CMD命令行连接Oracle数据库应该跟连接MySQL数据库差不多,因此这里简单介绍下 2、命令:conn 用户名/密码@数据库所在IP:端口号/实例名 ⑴因为在Oracle中用户对应数据库,因此用...
  • DBA常用命令行

    2018-12-04 15:23:54
    Oracle笔记 二、常用dba命令行 1、给用户解锁 alter user scott account unlock; 2、注销、断开、切换当前用户连接 quit conn scott/tiger 3、用户权限查询 A .查看所有用户: select * from dba_users; select * ...
  • 小编接下来为你分享在没有数据库管理工具情况下,利用系统自带的命令行方式去查询和操作数据库 实验介绍在Windows 系统上安装 oracle 的客户端,远程连接 oracle 数据库 实验环境 oracle 数据库 IP 地址:192.168....
  • 第一步,在cmd命令行,输入sqlplus 或者直接在plsql中打开command window第二步,根据提示输入用户名与密码1. 查看processes和sessions参数?12345678910111213SQL> show parameter processes NAME TYPE ...
  • .net oracle 连接

    2009-03-24 14:35:00
    连接成功后就可以查询了,这玩意看起来想windows程序,貌似像是一个dos命令行工具,输入完sql得选择"文件/运行" 执行SQL 配置文件(使用前应该先配置此文件),因为是精简版,没有图形化工具配置,所有就Notepad了 #...
  • 1、concat连接字符串:从上图中可以看出,直接使用select concat就可以连接任意两个以上的字符串,同时也可以用来连接查询结果,一般情况中也是会用来连接查询结果。需要注意的是,如果连接的内容有null存在的话,...
  • 因为有强大的第三方工具,现在大家可能几乎...今天用命令行连接ORACLE数据库是时候,很尴尬。竟然还有export ORACLE_SID=crmdb1 的操作 1、查看现在是在那个数据库环境中 (用ORACLE用户登陆) echo $ORACLE_S...
  • 现象描述:使用的 oracle 版本为linux版10.2.0.1.0,在命令行界面输入lsnrctl status后即没有反应,同时输入lsnrctl stop也没有任何反应。已经连接数据库的应用正常运行,但是新的应用无法连接数据库。在oracle...
  • ORACLE的一些查询语句

    千次阅读 2010-08-31 20:44:00
    学了几天的oracle现在做总结如下:1 刚安装好oracle19g在命令行以scott用户登录的时候,一般要对其进行解锁,其语句如下首先以dba的身份登录连接到该数据库 sqlplus sys/orcl as sysdba连接后执行如下语句:alter...
  • 我们通过前面几篇文章熟悉了表的创建修改删除、表的数据的新增修改删除,本文将着重阐述如何进行表中数据的查询。 1 系统、环境和前提约束 win10 64 oracle 11g ...# 在windows命令行连接s...
  • 进入到命令行窗口 C:\Users\85795>sqlplus SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 10 11:41:31 2020 Copyright (c) 1982, 2010, Oracle. All rights reserved. 请输入用户名: sys as sysdba 输入...
  • 1、命令行基本命令 进入oracle: sqlplus 管理员登录: 格式: 用户名 as sysdba 用户名: sys as sysdba 密码:不显示 连接管理员(方式一:需要填入密码) conn sys as sysdba; 方式二(不需要填写密码,...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

命令行连接查询oracle