FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pspg/scripts/sqlcl/pspg.sql at master · okbob/pspg · GitHub
okbob
/
pspg
Public
Notifications
You must be signed in to change notification settings
Fork
89
Star
2.7k
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
pspg
/
scripts
/
sqlcl
/
pspg.sql
Copy path
More file actions
More file actions
Latest commit
History
History
History
75 lines (59 loc) · 2.29 KB
Breadcrumbs
pspg
/
scripts
/
sqlcl
/
pspg.sql
Copy path
File metadata and controls
75 lines (59 loc) · 2.29 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
script
var CommandRegistry
=
Java
.
type
(
"
oracle.dbtools.raptor.newscriptrunner.CommandRegistry
"
);
var CommandListener
=
Java
.
type
(
"
oracle.dbtools.raptor.newscriptrunner.CommandListener
"
)
var Runtime
=
Java
.
type
(
"
java.lang.Runtime
"
);
var Scanner
=
Java
.
type
(
"
java.util.Scanner
"
);
var System
=
Java
.
type
(
"
java.lang.System
"
);
var FileOutputStream
=
Java
.
type
(
"
java.io.FileOutputStream
"
);
var ByteArrayOutputStream
=
Java
.
type
(
"
java.io.ByteArrayOutputStream
"
);
var BufferedOutputStream
=
Java
.
type
(
"
java.io.BufferedOutputStream
"
);
var Files
=
Java
.
type
(
"
java.nio.file.Files
"
);
var
Path
=
Java
.
type
(
"
java.nio.file.Path
"
);
var File
=
Java
.
type
(
"
java.io.File
"
);
var cmd
=
{};
cmd
.
handle
=
function (conn,ctx,cmd) {
if (
cmd
.
getSql
().startsWith(
"
pspg
"
)) {
var tty
=
System
.
getenv
(
"
TTY
"
);
if (tty
==
null
) {
print(
"
\nIn order to use pspg to page results, make sure you pass in your tty as an environment variable.
"
);
print(
"
For example, invoke sqlcl like this:\n
"
);
print(
"
$ TTY=$(tty) sqlcl ...\n
"
);
return true;
}
var sql
=
cmd
.
getSql
().
substring
(
5
);
var tempPath
=
Files
.
createTempFile
(
"
sqlcl-result
"
,
"
.data
"
);
try {
var bout
=
new ByteArrayOutputStream();
sqlcl
.
setOut
(new BufferedOutputStream(bout));
//
Set
this to a big value so that we do not get repeating headers
ctx
.
putProperty
(
"
script.runner.setpagesize
"
,
1000000
);
sqlcl
.
setConn
(conn);
sqlcl
.
setStmt
(sql);
sqlcl
.
run
();
var fileOutputStream
=
new FileOutputStream(
tempPath
.
toFile
());
bout
.
writeTo
(fileOutputStream);
fileOutputStream
.
close
();
var pager
=
Runtime
.
getRuntime
().exec(
[
"
sh
"
,
"
-c
"
,
"
pspg '
"
+
tempPath
.
toString
()
+
"
' <
"
+
tty
+
"
>
"
+
tty ]
);
pager
.
waitFor
();
} finally {
Files
.
delete
(tempPath);
}
//
return TRUE to indicate the command was handled
return true;
}
//
return FALSE to indicate the command was not handled
//
and
other commandListeners will be asked to handle it
return false;
}
cmd
.
begin
=
function (conn,ctx,cmd) {}
cmd
.
end
=
function (conn,ctx,cmd) {}
var pspgCommand
=
Java
.
extend
(CommandListener, {
handleEvent:
cmd
.
handle
,
beginEvent:
cmd
.
begin
,
endEvent:
cmd
.
end
});
//
Registering the new Command
CommandRegistry
.
addForAllStmtsListener
(
pspgCommand
.
class
);
/
Back
|
FazBrowse Home
|
New Git URL