Mūsų internetinis knygynas nestabdo savo veiklos karantino metu ir priima užsakymus 24/7. Visi užsakymai pristatomi įprasta tvarka.

SQLScript for SAP HANA [Kietas viršelis]

  • Formatas: Hardback, 435 pages
  • Išleidimo metai: 26-Mar-2020
  • Leidėjas: SAP Press
  • ISBN-10: 1493218220
  • ISBN-13: 9781493218226
  • Formatas: Hardback, 435 pages
  • Išleidimo metai: 26-Mar-2020
  • Leidėjas: SAP Press
  • ISBN-10: 1493218220
  • ISBN-13: 9781493218226
Developers, your complete guide to SQLScript programming for SAP HANA is here! Get hands-on with the SQLScript language, understand the data types you'll work with, and master the function library. Learn to implement SAP HANA database procedures and functions using imperative and declarative SQLScript. See how SQLScript plays with ABAP, SAP BW on SAP HANA, and SAP BW/4HANA. Finally, optimize, troubleshoot, and analyze your SQLScript programs. a. SQL Language ElementsSee how to develop simple SQL routines, and learn about the key elements of SQLScript, the data types of SAP HANA, and declarative and imperative programming. b. SQL Function LibraryMaster the most important functions of the SAP HANA database, including aggregate functions, string functions, and type conversions.c. SQLScript in SAP ApplicationsLearn how to integrate SQLScript procedures into ABAP, SAP BW on SAP HANA, or SAP BW/4HANA programs.1) SAP HANA Studio2) SAP Web IDE for SAP HANA3) SQL console4) Read and write database access5) Flow logic6) Tables and views7) Sequences and triggers8) ABAP managed database procedures (AMDP)9) SAP HANA development environment10) Optimization 11) Troubleshooting and analysis

Brandeis introduces and documents the particular dialect of structured query language (SQL) that users of the SAP HANA database can use to send queries to the database. The language was introduced at the same time as the database, in 2010, he says, but this is the first textbook for it. He admits that most of the information is available online, but notes that he puts it in a structure for easy learning and reference. His topics include declarative programming in SQLScript, data types and their processing, write access to the database, SQLScript in ABAP programs, and clean SQLScript code. Annotation ©2019 Ringgold, Inc., Portland, OR (protoview.com)
Introduction 15(8)
1 Sap Hana
23(32)
1.1 What Is SAP HANA?
24(8)
1.1.1 SAP HANA: A Fast SQL Database
24(5)
1.1.2 SAP HANA: An Application Server
29(1)
1.1.3 SAP HANA: A Collection of Tools
30(2)
1.2 System Architecture
32(4)
1.2.1 SAP HANA Server Components
32(2)
1.2.2 Databases and Tenants
34(2)
1.3 Organizing Database Objects
36(4)
1.3.1 Database Schemas
36(2)
1.3.2 Database Catalogs
38(1)
1.3.3 Content and Repositories
39(1)
1.4 Development Environments
40(10)
1.4.1 SAP HANA Studio
41(4)
1.4.2 SAP HANA Web-Based Development Workbench
45(3)
1.4.3 SAP Web IDE
48(2)
1.5 The SQL Console
50(5)
2 Getting Started with SQLScript
55(54)
2.1 SQL Versus SQLScript
56(3)
2.2 Basic Language Elements
59(19)
2.2.1 Statements
60(1)
2.2.2 Whitespace
60(1)
2.2.3 Comments
61(1)
2.2.4 Literals
62(3)
2.2.5 Identifiers
65(2)
2.2.6 Access to Local Variables and Parameters
67(1)
2.2.7 System Variables
67(1)
2.2.8 Reserved Words
68(1)
2.2.9 Operators
69(3)
2.2.10 Expressions
72(1)
2.2.11 Predicates
73(1)
2.2.12 Data Types
73(1)
2.2.13 The NULL Value
74(2)
2.2.14 The DUMMY Table
76(2)
2.3 Modularization and Logical Containers
78(16)
2.3.1 Blocks
80(3)
2.3.2 Procedures
83(7)
2.3.3 User-Defined Functions
90(4)
2.4 Sample Program
94(15)
2.4.1 Requirements
94(1)
2.4.2 Requirements Analysis
95(2)
2.4.3 Implementation
97(7)
2.4.4 Testing the Implementation
104(5)
3 Declarative Programming in SQLScript
109(56)
3.1 Table Variables
110(2)
3.1.1 Declaring Table Variables
111(1)
3.1.2 Using Table Variables
112(1)
3.2 SELECT Statements
112(48)
3.2.1 SELECT Clauses
113(1)
3.2.2 Field List of SELECT Clauses
114(16)
3.2.3 FROM Clauses
130(2)
3.2.4 Joins
132(6)
3.2.5 WHERE Conditions
138(9)
3.2.6 WITH Clauses
147(2)
3.2.7 GROUP BY Clauses
149(3)
3.2.8 HAVING Clauses
152(1)
3.2.9 ORDER BY Clauses
153(1)
3.2.10 Set Theory
154(2)
3.2.11 Subqueries
156(2)
3.2.12 Alias Names
158(2)
3.3 Other Operators
160(5)
3.3.1 Calculation Engine Plan Operators
160(1)
3.3.2 Map Merge
161(4)
4 Data Types and Their Processing
165(56)
4.1 Character Strings
166(19)
4.1.1 Data Types for Character Strings
166(3)
4.1.2 Conversions
169(1)
4.1.3 Character String Functions
169(16)
4.2 Date and Time
185(16)
4.2.1 Date Information
185(6)
4.2.2 Time Information
191(1)
4.2.3 Combined Time and Date Information
192(1)
4.2.4 Processing Time and Date Values
193(5)
4.2.5 Examples of Processing Time Values
198(3)
4.3 Numerical Data
201(12)
4.3.1 Basic Arithmetic Operations
202(1)
4.3.2 Square Roots and Exponents
203(1)
4.3.3 Logarithms
203(1)
4.3.4 Rounding or Trimming
203(3)
4.3.5 Trigonometry
206(1)
4.3.6 Random Numbers
206(1)
4.3.7 Sign
207(1)
4.3.8 Quantities and Amounts
207(6)
4.4 Binary Data Types
213(5)
4.4.1 Conversion Between Binary Data, Hexadecimal Data, and Character Strings
215(1)
4.4.2 Bits and Bytes
216(2)
4.5 Conversions Between Data Types
218(3)
5 Write Access to the Database
221(12)
5.1 INSERT
222(4)
5.1.1 Individual Data Records
222(2)
5.1.2 Inserting Multiple Records Simultaneously
224(2)
5.2 UPDATE
226(1)
5.2.1 Simple UPDATE Statement
226(1)
5.2.2 UPDATE Statement with Reference to Other Tables
226(1)
5.3 UPSERT or REPLACE
227(2)
5.3.1 Inserting or Updating Individual Data Records
228(1)
5.3.2 Inserting or Updating Multiple Data Records
229(1)
5.4 MERGE INTO
229(3)
5.5 DELETE
232(1)
5.6 TRUNCATE TABLE
232(1)
6 Imperative Programming
233(50)
6.1 Variables
233(16)
6.1.1 Local Scalar Variables
233(5)
6.1.2 Local Table Variables
238(9)
6.1.3 Session Variables
247(1)
6.1.4 Temporary Tables
248(1)
6.2 Flow Control Using IF and ELSE
249(4)
6.3 Loops
253(3)
6.3.1 FOR Loop
253(1)
6.3.2 WHILE Loop
254(1)
6.3.3 Controlling Loop Passes
255(1)
6.3.4 Exercise: Greatest Common Divisor
255(1)
6.4 Cursors
256(4)
6.4.1 FOR Loop via a Cursor
257(1)
6.4.2 Open, Read, and Close Explicitly
258(2)
6.5 Arrays
260(8)
6.5.1 Generating an Array
261(1)
6.5.2 Accessing the Array
261(1)
6.5.3 Arrays as Local Variables
262(1)
6.5.4 Splitting and Concatenating Arrays
263(1)
6.5.5 Arrays and Table Columns
264(1)
6.5.6 Bubble Sort Exercise
265(3)
6.6 Transaction Control
268(3)
6.6.1 Transactions
268(1)
6.6.2 Autonomous Transactions
269(2)
6.7 Executing Dynamic SQL
271(5)
6.7.1 Parameters of Dynamic SQL
272(2)
6.7.2 Input Parameters
274(2)
6.8 Error Handling
276(7)
6.8.1 What Are Exceptions?
276(1)
6.8.2 Triggering Exceptions
277(1)
6.8.3 Catching Exceptions
278(5)
7 Creating, Deleting, and Editing Database Objects
283(18)
7.1 Tables
284(7)
7.1.1 Creating Database Tables
284(5)
7.1.2 Changing Database Tables
289(1)
7.1.3 Deleting Database Tables
290(1)
7.2 Table Types
291(1)
7.3 Views
291(3)
7.4 Sequences
294(2)
7.4.1 Increment
294(1)
7.4.2 Limits
294(1)
7.4.3 Behavior When Reaching the Limit
295(1)
7.4.4 Resetting the Sequence
296(1)
7.4.5 Changing and Deleting a Sequence
296(1)
7.5 Triggers
296(5)
7.5.1 Parameters
299(1)
7.5.2 Per Row or Per Statement
299(2)
8 SQLScript in ABAP Programs
301(32)
8.1 AMDP Procedures
304(15)
8.1.1 Creating AMDP Procedures
305(3)
8.1.2 Generated Objects of an AMDP Method
308(4)
8.1.3 Lifecycle of the Generated Objects
312(1)
8.1.4 Two-Track Development
313(3)
8.1.5 Using AMDP Procedures in AMDP Procedures
316(3)
8.2 CDS Table Functions
319(8)
8.2.1 Creating a CDS Table Function
319(6)
8.2.2 Generated Objects of a CDS Table Function
325(1)
8.2.3 Implicit Client Handlingof CDS Table Functions
326(1)
8.3 AMDP Functions for AMDP Methods
327(2)
8.4 Alternatives to AMDPs for Calling SQLScript Code from ABAP Programs
329(1)
8.5 Recommendations
330(3)
9 SQLScript in SAP Business Warehouse
333(24)
9.1 Transformation Routines as AMDP
338(1)
9.2 Successive Transformations and Mixed Execution
339(2)
9.3 The Generated AMDP Classes
341(7)
9.3.1 Signature of AMDP Methods
342(2)
9.3.2 Assigning the Output Tables
344(1)
9.3.3 Access to Data from Other Data Models
345(3)
9.4 The Individual Routines
348(4)
9.4.1 Start Routines
348(1)
9.4.2 End Routines
349(1)
9.4.3 Expert Routines
350(1)
9.4.4 Field Routines
351(1)
9.5 Error Processing and Error Stack
352(5)
9.5.1 Processing Flow in the Data Transfer Process
353(1)
9.5.2 Example: Recognizing Incorrect Data in Table OUTTAB
354(1)
9.5.3 Example: Finding Invalid Field Contents with Regular Expressions
355(2)
10 Clean SQLScript Code
357(18)
10.1 The Readability of the Code
358(15)
10.1.1 Formatting the Code
358(1)
10.1.2 Mnemonic Names
359(2)
10.1.3 Granularity of Procedures and Functions
361(3)
10.1.4 Comments
364(2)
10.1.5 Decomposing Complex Queries
366(5)
10.1.6 Readable SQLScript Statements
371(2)
10.2 Performance Recommendations
373(2)
10.2.1 Reducing Data Volumes
373(1)
10.2.2 Avoid Switching Between Row and Column Engines
373(1)
10.2.3 Declarative Queries
373(1)
10.2.4 Scalar Functions
374(1)
11 Tests, Errors, and Performance Analysis
375(42)
11.1 Testing SQLScript Code
376(5)
11.1.1 SQL Console
376(2)
11.1.2 Testing ABAP Managed Database Procedure Methods
378(2)
11.1.3 The TRACE Statement
380(1)
11.2 The Debugger for SQLScript
381(16)
11.2.1 The SAP HANA Web-Based Development Workbench Debugger
381(6)
11.2.2 SQLScript Debugger in SAP HANA Studio
387(4)
11.2.3 AMDP Debugger in the ABAP Development Tools
391(3)
11.2.4 Debugging in the SAP Web IDE
394(3)
11.3 Performance Analysis
397(20)
11.3.1 Runtime Measurement
397(2)
11.3.2 Execution Plan
399(1)
11.3.3 Performance Analysis in the SAP HANA Web-Based Development Workbench
400(2)
11.3.4 PlanViz
402(8)
11.3.5 SQL Analyzer of the Database Explorer of the SAP Web IDE
410(2)
11.3.6 SQLScript Code Analyzer
412(5)
Appendices 417(2)
A Data Model for Task Management 419(4)
B List of Abbreviations 423(2)
C The Author 425(2)
Index 427
Joerg Brandeis is an independent consultant and developer with a focus on SAP BW for HANA and SAP BW/4HANA. Until mid-2015 he was a development manager for ABAP at zetVisions AG in Heidelberg. He developed and conducted a workshop on SAP HANA development and SQLScript and is experienced in training ABAP developers to use SQLScript.