我无法从合并表中选择值。 我正在做两个Oracle查询。然后,我将两个表放在一起并计算新列。然后我无法选择计算值。
我怀疑与“ MemberType”有关。新计算的列不会显示为“ NoteProperty”。
也许有人知道一个好的解决方案?
$tablespace_raw = Invoke-SqlQuery -Query 'SELECT TABLESPACE_NAME,BLOCK_SIZE,CONTENTS from DBA_TABLESPACES' -Stream
Clear-SqlMessage
$tablespace_raw | Format-Table
TABLESPACE_NAME BLOCK_SIZE CONTENTS
--------------- ---------- --------
SYSTEM 8192 PERMANENT
UNDOTBS1 8192 UNDO
SYSAUX 8192 PERMANENT
TEMP 8192 TEMPORARY
USERS 8192 PERMANENT
BMS 8192 PERMANENT
$tablespace_metrics_raw = Invoke-SqlQuery -Query 'SELECT TABLESPACE_NAME,USED_SPACE,TABLESPACE_SIZE from DBA_TABLESPACE_USAGE_METRICS' -Stream
Clear-SqlMessage
$tablespace_metrics_raw | Format-Table
TABLESPACE_NAME USED_SPACE TABLESPACE_SIZE
--------------- ---------- ---------------
BMS 538952 1024000
SYSAUX 55464 4194302
SYSTEM 65984 4194302
TEMP 0 128000
UNDOTBS1 1440 4194302
USERS 8 64000
$tablespace_raw | InnerJoin $tablespace_metrics_raw -On TABLESPACE_NAME | Format-Table -Property *,@{Name="USED_SPACE_Bytes";Expression={[double](($_.USED_SPACE) * ($_.BLOCK_SIZE))}},@{Name="TABLESPACE_SIZE_Bytes";Expression={[double](($_.TABLESPACE_SIZE) * ($_.BLOCK_SIZE))}},@{Name="TABLESPACE_Free_Percent";Expression={[int](($_.USED_SPACE) / ($_.TABLESPACE_SIZE) * 100)}}
TABLESPACE_NAME BLOCK_SIZE CONTENTS USED_SPACE TABLESPACE_SIZE USED_SPACE_Bytes TABLESPACE_SIZE_Bytes TABLESPACE_Free_Percent
--------------- ---------- -------- ---------- --------------- ---------------- --------------------- -----------------------
SYSTEM 8192 PERMANENT 65984 4194302 540540928 34359721984 2
UNDOTBS1 8192 UNDO 1440 4194302 11796480 34359721984 0
SYSAUX 8192 PERMANENT 55464 4194302 454361088 34359721984 1
TEMP 8192 TEMPORARY 0 128000 0 1048576000 0
USERS 8192 PERMANENT 8 64000 65536 524288000 0
BMS 8192 PERMANENT 538952 1024000 4415094784 8388608000 53
$tablespace_raw | Get-Member
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
BLOCK_SIZE NoteProperty decimal BLOCK_SIZE=8192
CONTENTS NoteProperty string CONTENTS=PERMANENT
TABLESPACE_NAME NoteProperty string TABLESPACE_NAME=SYSTEM
for($i=0;$i-le $tablespace_raw.length-1;$i++){
$tablespace_raw[$i].TABLESPACE_NAME
$tablespace_raw[$i].CONTENTS
$tablespace_raw[$i].BLOCK_SIZE
$tablespace_raw[$i].USED_SPACE_Bytes -->> NOTHING!
$i
}